Condividi tramite


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

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>

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: