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
- Seções de política: entrada, back-end
- Âmbitos de política: global, área de trabalho, produto, API, operação
- Gateways: clássico, v2, consumo, auto-hospedado, espaço de trabalho
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>
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Recompra de trechos de política
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Criar políticas usando o Microsoft Copilot no Azure