Ange serverdelstjänst
GÄLLER FÖR: Alla API Management-nivåer
Använd principen set-backend-service
för att omdirigera en inkommande begäran till en annan serverdel än den som anges i API-inställningarna för den åtgärden. Den här principen ändrar serverdelstjänstens bas-URL för den inkommande begäran till en URL eller serverdel som anges i principen.
Om du refererar till en serverdelsentitet kan du hantera serverdelstjänstens bas-URL och andra inställningar på en enda plats och återanvända dem i flera API:er och åtgärder. Implementera även belastningsutjämning av trafik över en pool med serverdelstjänster och regler för kretsbrytare för att skydda serverdelen från för många begäranden.
Kommentar
Serverdelsentiteter kan hanteras via Azure Portal, hanterings-API och PowerShell.
Kommentar
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.
Principuttryck
<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" />
Attribut
Attribut | beskrivning | Obligatoriskt | Standardvärde |
---|---|---|---|
base-url | Ny serverdelstjänstbas-URL. Principuttryck tillåts. | En av base-url eller backend-id måste finnas. |
Ej tillämpligt |
backend-id | Identifierare (namn) för serverdelen för att dirigera en primär eller sekundär replik av en partition. Principuttryck tillåts. | En av base-url eller backend-id måste finnas. |
Ej tillämpligt |
sf-resolve-condition | Gäller endast när serverdelen är en Service Fabric-tjänst. Villkor som identifierar om anropet till Service Fabric-serverdelen måste upprepas med ny lösning. Principuttryck tillåts. | Nej | Ej tillämpligt |
sf-service-instance-name | Gäller endast när serverdelen är en Service Fabric-tjänst. Tillåter ändring av tjänstinstanser vid körning. Principuttryck tillåts. | Nej | Ej tillämpligt |
sf-partition-key | Gäller endast när serverdelen är en Service Fabric-tjänst. Anger partitionsnyckeln för en Service Fabric-tjänst. Principuttryck tillåts. | Nej | Ej tillämpligt |
sf-listener-name | Gäller endast när serverdelen är en Service Fabric-tjänst och anges med hjälp av backend-id . Med Service Fabric Reliable Services kan du skapa flera lyssnare i en tjänst. Det här attributet används för att välja en specifik lyssnare när en tillförlitlig serverdelstjänst har mer än en lyssnare. Om det här attributet inte har angetts försöker API Management använda en lyssnare utan namn. En lyssnare utan namn är typisk för Reliable Services som bara har en lyssnare. Principuttryck tillåts. |
Nej | Ej tillämpligt |
Förbrukning
- Principavsnitt: inkommande, serverdel
- Principomfattningar: global, arbetsyta, produkt, API, åtgärd
- Gatewayer: klassisk, v2, förbrukning, lokalt installerad, arbetsyta
Användningsanteckningar
Om du för närvarande definierar en basprincip set-backend-service
med hjälp av backend-id
attributet och ärver basprincipen med hjälp av <base />
inom omfånget, kan den bara åsidosättas med en princip med hjälp av backend-id
attributet, inte base-url
attributet.
Exempel
Routningsbegäran baserat på värdet i frågesträngen
I det här exemplet set-backend-service
dirigerar principen begäranden baserat på versionsvärdet som skickas i frågesträngen till en annan serverdelstjänst än den som anges i API:et.
<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>
Ursprungligen härleds serverdelstjänstens bas-URL från API-inställningarna. Så begärande-URL:en https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef
blir http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef
där http://contoso.com/api/10.4/
är serverdelstjänstens URL som anges i API-inställningarna.
När principuttryck för <välj> tillämpas kan serverdelstjänstens bas-URL ändras igen till http://contoso.com/api/8.2
eller http://contoso.com/api/9.1
, beroende på värdet för frågeparametern för versionsbegäran. Om värdet till exempel är "2013-15"
den slutliga begärande-URL:en blir http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef
.
Om ytterligare transformering av begäran önskas kan andra transformeringsprinciper användas. Om du till exempel vill ta bort frågeparametern version nu när begäran dirigeras till en versionsspecifik serverdel kan du använda parameterprincipen Ange frågesträng för att ta bort det nu redundanta versionsattributet.
Dirigera begäranden till en service fabric-serverdel
I det här exemplet dirigerar principen begäran till en service fabric-serverdel med hjälp av userId-frågesträngen som partitionsnyckel och använder partitionens primära replik.
<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>
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Skapa principer med Microsoft Copilot i Azure