Criar políticas avançadas

Concluído

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

  • Controlar fluxo - Aplica-se condicionalmente a instruções de políticas com base nos resultados da avaliação do booliano expressions.
  • Encaminhar solicitação -Encaminha a solicitação ao serviço de back-end.
  • Simultaneidade de limite - impede que as políticas embutidas sejam executadas mais do que o número especificado de solicitações por vez.
  • Registrar no Hub de Eventos – envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger.
  • Resposta fictícia – anula a execução de pipeline e retorna uma resposta fictícia diretamente para o chamador.
  • Repetir - repete a execução das instruções de política, se e até que a condição seja atendida. A execução é repetida nos intervalos de tempo especificados e até a contagem de repetição especificada.

Fluxo de controle

A política choose aplica instruções de política incluídas com base no resultado da avaliação de expressões booleanas, semelhante a uma if-then-else ou uma construção de opção 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 elemento <when/>. O elemento <otherwise/> é opcional. As condições nos elementos <when/> são avaliadas na ordem de aparecimento na política. As instruções de política entre o primeiro elemento <when/> são aplicadas quando o atributo de condição é verdadeiro. As políticas entre o elemento <otherwise/>, se presentes, serão aplicadas se todos os atributos de condição do elemento <when/> forem falsos.

Encaminhar solicitação

A política forward-request 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 de API e pode ser alterada usando a política definir o serviço de back-end.

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 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"/>

Simultaneidade de limite

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

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

Registrar no Hub de Eventos

A política log-to-eventhub envia mensagens no formato especificado para um Hub de Eventos definido por uma entidade Logger. Como o nome sugere, a política é usada para salvar informações de contexto de solicitação ou de resposta solicitadas para a 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 fictícia

O mock-response, como o nome indica, é usado para simular APIs e operações. Ele anula a execução normal de pipeline e retorna uma resposta fictícia ao chamador. A política sempre tenta retornar respostas da mais alta fidelidade. Ela prefere exemplos de conteúdo de resposta, sempre que disponíveis. Ela gera respostas de amostra a partir de esquemas, quando os esquemas são fornecidos e os exemplos não são. Se exemplos ou esquemas não forem encontrados, respostas sem conteúdo serão retornadas.

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

Repetir

A política retry executa suas políticas filho uma vez e tenta realizar sua execução novamente até condition da nova tentativa se tornar false ou count da nova tentativa ser esgotada.

<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>

Retornar resposta

A política return-response 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 declarações de política ou variável de contexto. Quando ambos são fornecidos, a instrução de política modifica a variável de contexto antes de ser retornada ao chamador.

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

Outros recursos