Criar políticas avançadas

Concluído

Esta unidade fornece uma referência para as seguintes políticas de gerenciamento de API:

  • Fluxo de controle - Aplica condicionalmente declarações de política com base nos resultados da avaliação de expressões booleanas.
  • Encaminhar solicitação - Encaminha a solicitação para o serviço de back-end.
  • Limitar simultaneidade - Impede que as políticas anexadas sejam executadas por mais do que o número especificado de solicitações de cada vez.
  • Log to Event Hub - Envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger.
  • Resposta simulada - Aborta a execução do pipeline e retorna uma resposta simulada diretamente ao chamador.
  • Repetir - Tenta novamente executar as instruções de política anexadas, se e até que a condição seja atendida. A execução será repetida nos intervalos de tempo especificados e até a contagem de repetições especificada.

Fluxo de controlo

A choose política aplica declarações de política anexadas com base no resultado da avaliação de expressões booleanas, semelhante a uma construção if-then-else ou switch em uma linguagem de programação.

<choose>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <otherwise>
        <!— one or more policy statements to be applied if none of the above conditions are true  -->
</otherwise>
</choose>

A política de fluxo de controle deve conter pelo menos um <when/> elemento. O <otherwise/> elemento é opcional. As condições dos <when/> elementos são avaliadas por ordem de aparecimento na política. A(s) declaração(ões) de política incluída(s) no primeiro <when/> elemento com atributo de condição igual a true serão aplicadas. As políticas incluídas no <otherwise/> elemento , se presentes, serão aplicadas se todos os <when/> atributos de condição do elemento forem false.

Encaminhar pedido

A forward-request política encaminha a solicitação de entrada para o serviço de back-end especificado no contexto da solicitação. A URL do serviço de back-end é especificada nas configurações da API e pode ser alterada usando a política de serviço de back-end definida.

A remoção dessa política faz com que a solicitação não seja encaminhada para o serviço de back-end e as políticas na seção de saída são avaliadas imediatamente após a conclusão bem-sucedida das políticas na seção de entrada.

<forward-request timeout="time in seconds" follow-redirects="true | false"/>

Limitar a simultaneidade

A limit-concurrency política impede que as políticas anexadas sejam executadas por mais do que o número especificado de solicitações a qualquer momento. Ao exceder esse número, novas solicitações falharão imediatamente com um código de status 429 Solicitações Demais .

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

Iniciar sessão no Hub de Eventos

A log-to-eventhub política envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger. Como o próprio nome indica, a política é usada para salvar informações de contexto de solicitação ou resposta selecionadas para análise online ou offline.

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

Resposta simulada

O mock-response, como o nome indica, é usado para simular APIs e operações. Ele aborta a execução normal do pipeline e retorna uma resposta simulada ao chamador. A política tenta sempre devolver respostas da mais alta fidelidade. Prefere exemplos de conteúdo de resposta, sempre que disponíveis. Ele gera respostas de exemplo de esquemas, quando esquemas são fornecidos e exemplos não. Se nenhum exemplo ou esquema for encontrado, as respostas sem conteúdo serão retornadas.

<mock-response status-code="code" content-type="media type"/>

Tentar novamente

A retry política executa suas políticas filhas uma vez e, em seguida, tenta novamente sua execução até que a nova tentativa se torne ou a nova tentativa conditioncount se false esgote.

<retry
    condition="boolean expression or literal"
    count="number of retry attempts"
    interval="retry interval in seconds"
    max-interval="maximum retry interval in seconds"
    delta="retry interval delta in seconds"
    first-fast-retry="boolean expression or literal">
        <!-- One or more child policies. No restrictions -->
</retry>

Resposta de retorno

A return-response política anula a execução do pipeline e retorna uma resposta padrão ou personalizada para o chamador. A resposta padrão é 200 OK sem corpo. A resposta personalizada pode ser especificada por meio de uma variável de contexto ou instruções de política. Quando ambos são fornecidos, a resposta contida na variável de contexto é modificada pelas instruções de política antes de ser retornada ao chamador.

<return-response response-variable-name="existing context variable">
  <set-header/>
  <set-body/>
  <set-status/>
</return-response>

Recursos adicionais