Encaminhar solicitação
APLICA-SE A: todas as camadas do Gerenciamento de API
A política forward-request
encaminha a solicitação de entrada para o serviço de back-end especificado na variável de forward-request
de solicitação. A URL do serviço de back-end é especificada nas configurações de API e pode ser alterada usando a política definir o serviço de back-end.
Importante
- Essa política é necessária para encaminhar solicitações a um back-end de API. Por padrão, o Gerenciamento de API configura essa política no escopo global.
- A remoção dessa política faz com que a solicitação não seja encaminhada ao serviço de back-end. As políticas na seção de saída são avaliadas imediatamente mediante a conclusão bem-sucedida das políticas na seção de entrada.
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
<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>
Atributos
Atributo | Descrição | Obrigatório | Padrão |
---|---|---|---|
tempo limite | A quantidade de tempo em segundos a aguardar que os cabeçalhos de resposta HTTP sejam retornados pelo serviço de back-end antes que um erro de tempo esgotado seja gerado. O valor mínimo é 0 segundos. Valores maiores que 240 segundos podem não ser respeitados, porque a infraestrutura de rede subjacente pode descartar conexões ociosas após esse tempo. Expressões de política são permitidas. Você pode especificar timeout ou timeout-ms , mas não ambos. |
Não | 300 |
timeout-ms | A quantidade de tempo em milissegundos a aguardar que os cabeçalhos de resposta HTTP sejam retornados pelo serviço de back-end antes que um erro de tempo esgotado seja gerado. O valor mínimo é 0 ms. Expressões de política são permitidas. Você pode especificar timeout ou timeout-ms , mas não ambos. |
Não | N/D |
continue-timeout | O tempo total, em segundos, para aguardar que um código de status 100 Continue seja retornado pelo serviço de back-end antes que um erro de tempo limite seja gerado. Expressões de política são permitidas. |
No | N/D |
http-version | A versão de especificação HTTP a ser usada ao enviar a resposta HTTP para o serviço de back-end. Ao usar 2or1 , o gateway favorecerá HTTP /2 no lugar de /1, mas retornará para HTTP /1 se HTTP /2 não funcionar. |
Não | 1 |
seguir redirecionamentos | Especifica se os redirecionamentos do serviço de back-end são seguidos pelo gateway ou retornados ao chamador. Expressões de política são permitidas. | Não | false |
buffer-request-body | Quando definido como true , a solicitação é armazenada em buffer e será reutilizada na nova tentativa. |
Não | false |
buffer-response | Afeta o processamento de respostas em partes. Quando definido como false , cada parte recebida do back-end é retornada imediatamente para o autor da chamada. Quando definias como true , as partes são armazenadas em buffer (8 KB, a menos que o final do fluxo seja detectado) e, em seguida, retornadas para o chamador.Defina essa opção como false com back-ends como aqueles que implementam SSE (eventos enviados pelo servidor) que exigem que o conteúdo seja retornado ou transmitido imediatamente para o chamador. Expressões de política não são permitidas. |
Não | true |
fail-on-error-status-code | Quando definido como true aciona a seção On-Error para códigos de resposta no intervalo de 400 a 599, inclusive. Expressões de política não são permitidas. |
Não | false |
Uso
- Seções de política: 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
Exemplos
Enviar solicitação para o back-end HTTP/2
A política de nível da API a seguir encaminha todas as solicitações de API para um serviço de back-end HTTP/2.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request http-version="2or1"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Isso é necessário para cargas de trabalho gRPC ou HTTP /2 e atualmente só tem suporte no gateway auto-hospedado. Saiba mais em nossa Visão geral de gateway de API.
Encaminhar solicitação com intervalo de tempo limite
A política de nível de API a seguir encaminha todas as solicitações de API para o serviço de back-end com um intervalo de tempo limite de 60 segundos.
<!-- api level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Herdar a política do escopo pai
Esta política de nível de operação usa o elemento base
para herdar a política de back-end do escopo de nível de API pai.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<base/>
</backend>
<outbound>
<base/>
</outbound>
</policies>
Não herdar a política do escopo pai
Essa política de nível de operação explicitamente encaminha todas as solicitações para o serviço de back-end com um tempo limite de 120 e não herda a política de back-end do nível da API pai. Se o serviço de back-end responder com um código de status de erro de 400 para 599, inclusive, a seção On-Error será acionada.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<forward-request timeout="120" fail-on-error-status-code="true" />
<!-- effective policy. note the absence of <base/> -->
</backend>
<outbound>
<base/>
</outbound>
</policies>
Não encaminhar solicitações para o back-end
Essa política de nível de operação não encaminha solicitações para o serviço de back-end.
<!-- operation level -->
<policies>
<inbound>
<base/>
</inbound>
<backend>
<!-- no forwarding to backend -->
</backend>
<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