Compartilhar via


Definir serviço de back-end

APLICA-SE A: todas as camadas do Gerenciamento de API

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

Fazer referência a uma entidade de back-end permite que você gerencie a URL base do serviço de back-end e outras configurações em um único local e reutilize-as 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 um excesso de solicitações.

Observação

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

Observação

Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as 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 Descrição Obrigatório Padrão
base-url Nova URL base do serviço de back-end. Expressões de política são permitidas. Um base-url ou backend-id deve estar presente. N/D
backend-id Identificador (nome) do back-end para rotear a réplica primária ou secundária de uma partição. Expressões de política são permitidas. Um base-url ou backend-id deve estar presente. N/D
sf-resolve-condition Aplicável somente quando o back-end é um serviço do Service Fabric. Condição que identifica se a chamada para o back-end do Service Fabric deve ser repetida com a nova resolução. Expressões de política são permitidas. No N/D
sf-service-instance-name Aplicável somente quando o back-end é um serviço do Service Fabric. Permite alterar as instâncias de serviço em runtime. Expressões de política são permitidas. No N/D
sf-partition-key Aplicável somente quando o back-end é um serviço do Service Fabric. Especifica a chave de partição de um serviço Service Fabric. Expressões de política são permitidas. No N/D
sf-listener-name Aplicável somente quando o back-end é um serviço do Service Fabric e é especificado usando backend-id. O Reliable Services do Service Fabric permite que você crie vários ouvintes em um serviço. Este atributo é usado para selecionar um ouvinte específico quando um Reliable Service de back-end tiver mais de um ouvinte. Se esse atributo não for especificado, o Gerenciamento de API tentará usar um ouvinte sem nome. Um ouvinte sem nome é comum para o Reliable Services, que têm apenas um ouvinte. Expressões de política são permitidas. No N/D

Uso

Observações de uso

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

Exemplos

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

Neste exemplo, a política set-backend-service roteia solicitações com base no valor da versão passado na cadeia de consulta para um serviço de back-end diferente daquele 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 de API. Assim, a URL da solicitação https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef se torna http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef em que http://contoso.com/api/10.4/ é a URL do serviço de back-end especificada nas configurações de API.

Quando a instrução de política <choose> é aplicada, a URL base do serviço de back-end pode se alterar 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", a URL da solicitação final se tornará http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef.

Se ainda mais transformação da solicitação for desejada, 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 Definir parâmetro de cadeia de caracteres de consulta pode ser usada para remover o atributo de versão agora redundante.

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

Neste exemplo, a política encaminha a solicitação para um back-end de Service Fabric 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: