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
- Seções de política: de entrada, back-end
- Escopos de política: global, espaço de trabalho, produto, API, operação
- Gateways: clássico, v2, consumo, auto-hospedado, espaço de trabalho
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>
Políticas relacionadas
Conteúdo relacionado
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transformar e proteger sua API
- Referência de Política para uma lista completa das instruções de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Repositório de snippets de política
- Kit de ferramentas de políticas do Gerenciamento de API do Azure
- Criar políticas usando o Microsoft Copilot no Azure