Udostępnij za pośrednictwem


Ustaw usługę zaplecza

DOTYCZY: Wszystkie warstwy usługi API Management

Użyj zasad, set-backend-service aby przekierować żądanie przychodzące do innego zaplecza niż określone w ustawieniach interfejsu API dla tej operacji. Te zasady zmieniają podstawowy adres URL usługi zaplecza przychodzącego żądania na adres URL lub zaplecze określone w zasadach.

Odwoływanie się do jednostki zaplecza umożliwia zarządzanie podstawowym adresem URL usługi zaplecza i innymi ustawieniami w jednym miejscu i ponowne użycie ich w wielu interfejsach API i operacjach. Zaimplementuj również równoważenie obciążenia ruchu w puli usług zaplecza i reguł wyłącznika, aby chronić zaplecze przed zbyt wieloma żądaniami.

Uwaga

Jednostki zaplecza można zarządzać za pośrednictwem witryny Azure Portal, interfejsu API zarządzania i programu PowerShell.

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

<set-backend-service base-url="base URL of the backend service"  backend-id="name of the backend entity specifying base URL of the backend service" sf-resolve-condition="condition" sf-service-instance-name="Service Fabric service name" sf-listener-name="Service Fabric listener name" />

Atrybuty

Atrybut opis Wymagani Wartość domyślna
base-url Nowy adres URL bazy usługi zaplecza. Wyrażenia zasad są dozwolone. Jeden z base-url lub backend-id musi być obecny. Nie dotyczy
identyfikator zaplecza Identyfikator (nazwa) zaplecza do kierowania repliki podstawowej lub pomocniczej partycji. Wyrażenia zasad są dozwolone. Jeden z base-url lub backend-id musi być obecny. Nie dotyczy
sf-resolve-condition Ma zastosowanie tylko wtedy, gdy zaplecze jest usługą Service Fabric. Warunek określający, czy wywołanie zaplecza usługi Service Fabric musi zostać powtórzone z nową rozdzielczością. Wyrażenia zasad są dozwolone. Nie. Nie dotyczy
sf-service-instance-name Ma zastosowanie tylko wtedy, gdy zaplecze jest usługą Service Fabric. Umożliwia zmianę wystąpień usługi w czasie wykonywania. Wyrażenia zasad są dozwolone. Nie. Nie dotyczy
sf-partition-key Ma zastosowanie tylko wtedy, gdy zaplecze jest usługą Service Fabric. Określa klucz partycji usługi Service Fabric. Wyrażenia zasad są dozwolone. Nie. Nie dotyczy
sf-listener-name Ma zastosowanie tylko wtedy, gdy zaplecze jest usługą Service Fabric i jest określone przy użyciu polecenia backend-id. Usługa Service Fabric Reliable Services umożliwia tworzenie wielu odbiorników w usłudze. Ten atrybut służy do wybierania określonego odbiornika, gdy usługa Reliable Service zaplecza ma więcej niż jeden odbiornik. Jeśli ten atrybut nie zostanie określony, usługa API Management podejmie próbę użycia odbiornika bez nazwy. Odbiornik bez nazwy jest typowy dla usług Reliable Services, które mają tylko jeden odbiornik. Wyrażenia zasad są dozwolone. Nie. Nie dotyczy

Użycie

  • Sekcje zasad: ruch przychodzący, zaplecze
  • Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
  • Bramy: klasyczne, v2, zużycie, self-hosted, obszar roboczy

Uwagi dotyczące użycia

Obecnie jeśli zdefiniujesz zasady podstawowe set-backend-service przy użyciu atrybutu backend-id i dziedziczysz zasady podstawowe przy użyciu <base /> zakresu, można je zastąpić tylko zasadami przy użyciu atrybutu backend-id , a nie atrybutu base-url .

Przykłady

Kierowanie żądania na podstawie wartości w ciągu zapytania

W tym przykładzie set-backend-service zasady kieruje żądania na podstawie wartości wersji przekazanej w ciągu zapytania do innej usługi zaplecza niż określona w interfejsie API.

<policies>
    <inbound>
        <choose>
            <when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
                <set-backend-service base-url="http://contoso.com/api/8.2/" />
            </when>
            <when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
                <set-backend-service base-url="http://contoso.com/api/9.1/" />
            </when>
        </choose>
        <base />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Początkowo podstawowy adres URL usługi zaplecza pochodzi z ustawień interfejsu API. Dlatego adres URL żądania staje się http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef adresem http://contoso.com/api/10.4/ URL https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef usługi zaplecza określonym w ustawieniach interfejsu API.

Po zastosowaniu <instrukcji select> policy podstawowy adres URL usługi zaplecza może zmienić się ponownie na http://contoso.com/api/8.2 lub http://contoso.com/api/9.1, w zależności od wartości parametru zapytania żądania wersji. Jeśli na przykład wartość to "2013-15" końcowy adres URL żądania, stanie się .http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef

Jeśli wymagane jest dalsze przekształcenie żądania, można użyć innych zasad przekształcania. Aby na przykład usunąć parametr zapytania wersji, który jest teraz kierowany do zaplecza specyficznego dla wersji, można użyć zasad Ustaw parametr ciągu zapytania, aby usunąć atrybut wersji teraz nadmiarowej.

Kierowanie żądań do zaplecza usługi Service Fabric

W tym przykładzie zasady przekierowuje żądanie do zaplecza usługi Service Fabric przy użyciu ciągu zapytania userId jako klucza partycji i przy użyciu repliki podstawowej partycji.

<policies>
    <inbound>
        <set-backend-service backend-id="my-sf-service" sf-partition-key="@(context.Request.Url.Query.GetValueOrDefault("userId","")" sf-replica-type="primary" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: