Definir serviço de back-end

APLICA-SE A: Todas as camadas de gerenciamento de API

Use a set-backend-service política para redirecionar uma solicitação de entrada para um back-end diferente daquele especificado nas configurações da API para essa operação. Esta política altera a URL base do serviço de back-end da solicitação de entrada para uma URL ou back-end especificado na política.

A referência a uma entidade de back-end permite gerenciar a URL base do serviço de back-end e outras configurações em um único local e reutilizá-las em várias APIs e operações. Implemente também o balanceamento de carga do tráfego em um pool de serviços de back-end e regras de disjuntor para proteger o back-end de muitas solicitações.

Nota

As entidades de back-end podem ser gerenciadas por meio do portal do Azure, da API de gerenciamento e do PowerShell.

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.

Declaração de política

<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" />

Atributos

Atributo Description Necessário Predefinição
base-url Nova URL base do serviço de back-end. São permitidas expressões de política. Um dos base-url ou backend-id deve estar presente. N/A
ID de back-end Identificador (nome) do back-end para rotear a réplica primária ou secundária de uma partição. São permitidas expressões de política. Um dos base-url ou backend-id deve estar presente. N/A
sf-resolve-condição Aplicável apenas quando o back-end é um serviço do Service Fabric. Condição que identifica se a chamada para o back-end do Service Fabric precisa ser repetida com nova resolução. São permitidas expressões de política. No N/A
sf-service-instance-name Aplicável apenas quando o back-end é um serviço do Service Fabric. Permite alterar instâncias de serviço em tempo de execução. São permitidas expressões de política. No N/A
sf-chave de partição Aplicável apenas quando o back-end é um serviço do Service Fabric. Especifica a chave de partição de um serviço do Service Fabric. São permitidas expressões de política. No N/A
sf-nome do ouvinte Aplicável somente quando o back-end é um serviço do Service Fabric e é especificado usando backend-id. O Service Fabric Reliable Services permite que você crie vários ouvintes em um serviço. Esse atributo é usado para selecionar um ouvinte específico quando um Serviço Confiável de back-end tem mais de um ouvinte. Se esse atributo não for especificado, o Gerenciamento de API tentará usar um ouvinte sem um nome. Um ouvinte sem nome é típico de Serviços Confiáveis que têm apenas um ouvinte. São permitidas expressões de política. No N/A

Utilização

Notas de utilização

Atualmente, se você definir uma política base set-backend-service usando o backend-id atributo e herdar a política base usando <base /> dentro do escopo, ela só poderá ser substituída por uma política usando o backend-id atributo, não o base-url atributo.

Exemplos

Solicitação de rota com base no valor na cadeia de caracteres de consulta

Neste exemplo, a política roteia set-backend-service solicitações com base no valor de versão passado na cadeia de caracteres de consulta para um serviço de back-end diferente do especificado na 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>

Inicialmente, a URL base do serviço de back-end é derivada das configurações da API. Assim, a URL https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef da solicitação torna-se http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef onde http://contoso.com/api/10.4/ é a URL do serviço de back-end especificada nas configurações da API.

Quando a <instrução de política de escolha> é aplicada, a URL base do serviço de back-end pode mudar novamente para http://contoso.com/api/8.2 ou http://contoso.com/api/9.1, dependendo do valor do parâmetro de consulta de solicitação de versão. Por exemplo, se o valor for "2013-15" o URL da solicitação final se tornará http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef.

Se desejar uma transformação adicional da solicitação, outras políticas de Transformação poderão ser usadas. Por exemplo, para remover o parâmetro de consulta de versão agora que a solicitação está sendo roteada para um back-end específico da versão, a política de parâmetro de cadeia de caracteres de consulta set pode ser usada para remover o atributo version agora redundante.

Encaminhar solicitações para um back-end de malha de serviço

Neste exemplo, a política roteia a solicitação para um back-end de malha de serviço, usando a cadeia de caracteres de consulta userId como a chave de partição e usando a réplica primária da partição.

<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>

Para obter mais informações sobre como trabalhar com políticas, consulte: