Disparar associação de saída
APLICA-SE A: Desenvolvedor | Premium
A política invoke-dapr-binding
instrui o gateway de Gerenciamento de API a disparar uma associação de saída do Dapr. A política faz isso realizando uma solicitação HTTP POST para http://localhost:3500/v1.0/bindings/{{bind-name}},
, substituindo o parâmetro do modelo e adicionando o conteúdo especificado na instrução da política.
A política pressupõe que o runtime do Dapr está sendo executado em um contêiner sidecar no mesmo pod que o gateway. O runtime do Dapr é responsável por invocar o recurso externo representado pela associação. Saiba mais sobre a integração do Dapr ao Gerenciamento de API.
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
<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<metadata>
<item key="item-name"><!-- item-value --></item>
</metadata>
<data>
<!-- message content -->
</data>
</invoke-dapr-binding>
Atributos
Atributo | Descrição | Obrigatório | Padrão |
---|---|---|---|
name | Nome da associação de destino. Deve corresponder ao nome das associações definidas no Dapr. Expressões de política são permitidas. | Sim | N/D |
operation | Nome da operação de destino (específico da associação). É mapeado para a propriedade operation do Dapr. Expressões de política não são permitidas. | Não | Nenhum |
ignore-error | Se definido como true , instrui a política para não disparar a seção "on-error" ao receber o erro do runtime do Dapr. Expressões de política não são permitidas. |
Não | false |
response-variable-name | Nome da entrada da coleção Variables a ser usada para armazenar a resposta do runtime do Dapr. Expressões de política não são permitidas. | Não | Nenhum |
tempo limite | Tempo (em segundos) a aguardar para o runtime do Dapr responder. Pode variar de 1 a 240 segundos. Expressões de política são permitidas. | Não | 5 |
template | Mecanismo de modelagem a ser usado para transformar o conteúdo da mensagem. "Liquid" é o único valor com suporte. | Não | Nenhum |
content-type | Tipo de conteúdo da mensagem. "application/json" é o único valor com suporte. | Não | Nenhum |
Elementos
Elemento | Descrição | Obrigatório |
---|---|---|
metadata | Associação de metadados específicos na forma de pares de chave/valor. É mapeado para a propriedade metadata do Dapr. | Não |
data | O conteúdo da mensagem. É mapeado para a propriedade data do Dapr. Expressões de política são permitidas. | Não |
Uso
- Seções de política: de entrada, de saída, em caso de erro
- Escopos de política: global, produto, API, operação
- Gateways: auto-hospedados
Observações de uso
O suporte ao Dapr deve ser habilitado no gateway auto-hospedado.
Exemplo
O exemplo a seguir demonstra o disparo da associação de saída denominada "external-systems" com a operação denominada "create", metadados que consistem em dois itens de chave/valor denominados "source" e "client-ip" e o corpo proveniente da solicitação original. A resposta recebida do runtime do Dapr é capturada na entrada "bind-response" da coleção Variables do objeto context.
Se o runtime do Dapr falhar por algum motivo e responder com um erro, a seção "on-error" será disparada e a resposta recebida do runtime do Dapr será retornada ao chamador na íntegra. Caso contrário, a resposta padrão 200 OK
será retornada.
A seção "back-end" está vazia e a solicitação não será encaminhada para o back-end.
<policies>
<inbound>
<base />
<invoke-dapr-binding
name="external-system"
operation="create"
response-variable-name="bind-response">
<metadata>
<item key="source">api-management</item>
<item key="client-ip">@(context.Request.IpAddress )</item>
</metadata>
<data>
@(context.Request.Body.As<string>() )
</data>
</invoke-dapr-binding>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="bind-response" />
</on-error>
</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
- Criar políticas usando o Microsoft Copilot no Azure