Set backend service (Imposta servizio back-end)
SI APPLICA A: Tutti i livelli di Gestione API
Usare il criterio set-backend-service
per reindirizzare una richiesta in ingresso a un back-end diverso da quello specificato nelle impostazioni dell'API per l'operazione. Questi criteri cambiano l'URL di base del servizio back-end della richiesta in arrivo con un URL o back-end specificato nei criteri.
Fare riferimento a un'entità back-end consente di gestire l'URL di base del servizio back-end e altre impostazioni in un'unica posizione e riutilizzarle tra più API e operazioni. Implementare anche il bilanciamento del carico del traffico in un pool di servizi back-end e le regole di interruttore per proteggere il back-end da troppe richieste.
Nota
Le entità back-end possono essere gestite tramite il portale di Azure, l'API di gestione e PowerShell.
Nota
Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.
Istruzione del criterio
<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" />
Attributi
Attributo | Descrizione | Richiesto | Valore predefinito |
---|---|---|---|
base-url | Nuovo URL di base del servizio back-end. Le espressioni di criteri sono consentite. | Uno di base-url o backend-id deve essere presente. |
N/D |
backend-id | Identificatore (nome) del back-end per instradare la replica primaria o secondaria di una partizione. Le espressioni di criteri sono consentite. | Uno di base-url o backend-id deve essere presente. |
N/D |
sf-resolve-condition | Applicabile solo quando il back-end è un servizio di Service Fabric. Condizione che identifica se la chiamata al back-end di Service Fabric deve essere ripetuta con una nuova risoluzione. Le espressioni di criteri sono consentite. | No | N/D |
sf-service-instance-name | Applicabile solo quando il back-end è un servizio di Service Fabric. Consente di modificare le istanze del servizio durante il runtime. Le espressioni di criteri sono consentite. | No | N/D |
sf-partition-key | Applicabile solo quando il back-end è un servizio di Service Fabric. Specifica la chiave di partizione di un servizio di Service Fabric. Le espressioni di criteri sono consentite. | No | N/D |
sf-listener-name | Applicabile solo quando il back-end è un servizio di Service Fabric e viene specificato tramite backend-id . Reliable Services di Service Fabric consente di creare più listener in un servizio. Questo attributo viene usato per selezionare un listener specifico quando un'istanza di Reliable Services back-end ha più di un listener. Se questo attributo non viene specificato, il servizio Gestione API tenterà di usare un listener senza nome. Un listener senza nome è tipico di un'istanza di Reliable Services con un solo listener. Le espressioni di criteri sono consentite. |
No | N/D |
Utilizzo
- Sezioni del criterio: inbound, backend
- Ambiti del criterio: globale, area di lavoro, prodotto, API, operazione
- Gateway: classico, v2, consumo, self-hosted, area di lavoro
Note sull'utilizzo
Attualmente, se si definiscono criteri di base set-backend-service
usando l'attributo backend-id
e si ereditano i criteri di base usando <base />
all'interno dell'ambito, è possibile eseguirne l'override solo con dei criteri che usano l'attributo backend-id
, non quello base-url
.
Esempi
Indirizzare la richiesta in base al valore nella stringa di query
In questo esempio i criteri set-backend-service
indirizzano le richieste in base al valore di versione passato nella stringa di query a un servizio back-end diverso rispetto a quello specificato nell'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>
Inizialmente l'URL di base del servizio back-end è quello specificato nelle impostazioni dell'API. Pertanto, l'URL della richiesta https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef
diventa http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef
dove http://contoso.com/api/10.4/
è l'URL del servizio back-end specificato nelle impostazioni dell'API.
Quando viene applicata l'istruzione dei criteri <choose>, l'URL di base del servizio back-end può essere di nuovo modificato in http://contoso.com/api/8.2
o http://contoso.com/api/9.1
, a seconda del valore del parametro della query versione richiesta. Se, ad esempio, il valore è "2013-15"
, l'URL della richiesta finale sarà http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef
.
Se occorre un'ulteriore trasformazione della richiesta, è possibile usare altri criteri di trasformazione. Ad esempio, per rimuovere il parametro della query di versione una volta instradata la richiesta verso un back-end specifico, ad esempio, è possibile usare il criterio Imposta parametro della stringa di query per rimuovere l'attributo della versione divenuta ridondante.
Indirizzare le richieste a un back-end di Service Fabric
In questo esempio il criterio indirizza la richiesta a un back-end dell'infrastruttura del servizio tramite la stringa di query dell'ID utente come chiave di partizione e tramite la replica della partizione primaria.
<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>
Criteri correlati
Contenuto correlato
Per ulteriori informazioni sull'utilizzo dei criteri, vedere:
- Esercitazione: trasformare e proteggere l'API
- Informazioni di riferimento sui criteri per un elenco completo delle istruzioni dei criteri e delle relative impostazioni
- Espressioni di criteri
- Impostare o modificare criteri
- Riutilizzare le configurazioni dei criteri
- Repository dei frammenti di criteri
- Creare criteri usando Microsoft Copilot in Azure