Partilhar via


Ligação de saída de gatilho

APLICA-SE A: Developer | Prémio

A invoke-dapr-binding política instrui o gateway de Gerenciamento de API a acionar uma associação de Dapr de saída. A política faz isso fazendo uma solicitação HTTP POST para http://localhost:3500/v1.0/bindings/{{bind-name}}, substituir o parâmetro de modelo e adicionando conteúdo especificado na instrução de política.

A política pressupõe que o tempo de execução do Dapr esteja sendo executado em um contêiner de sidecar no mesmo pod que o gateway. O tempo de execução do Dapr é responsável por invocar o recurso externo representado pela ligação. Saiba mais sobre a integração do Dapr com o Gerenciamento de API.

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar 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 Description Necessário Predefinição
nome Nome da vinculação de destino. Deve corresponder ao nome das ligações definidas em Dapr. São permitidas expressões de política. Sim N/A
operation Nome da operação de destino (específico da ligação). Mapeia para a propriedade da operação em Dapr. Expressões de política não são permitidas. Não Nenhuma
ignorar-erro Se definido como true instrui a política a não acionar a seção "on-error" ao receber o erro do tempo de execução do Dapr. Expressões de política não são permitidas. Não false
nome-variável-resposta Nome da entrada de coleção Variables a ser usada para armazenar a resposta do tempo de execução do Dapr. Expressões de política não são permitidas. Não Nenhuma
tempo limite Tempo (em segundos) para aguardar a resposta do tempo de execução do Dapr. Pode variar de 1 a 240 segundos. São permitidas expressões de política. Não 5
aninhado Mecanismo de criação de modelos a ser usado para transformar o conteúdo da mensagem. "Líquido" é o único valor suportado. Não Nenhuma
tipo de conteúdo Tipo de conteúdo da mensagem. "application/json" é o único valor suportado. Não Nenhuma

Elementos

Elemento Description Obrigatório
do IdP Vinculação de metadados específicos na forma de pares chave/valor. Mapeia para a propriedade de metadados no Dapr. Não
dados Conteúdo da mensagem. Mapeia para a propriedade data no Dapr. São permitidas expressões de política. Não

Utilização

Notas de utilização

O suporte a Dapr deve ser habilitado no gateway auto-hospedado.

Exemplo

O exemplo a seguir demonstra o acionamento da ligação de saída chamada "external-systems" com a operação chamada "create", metadados que consistem em dois itens de chave/valor chamados "source" e "client-ip" e o corpo proveniente da solicitação original. A resposta recebida do tempo de execução do Dapr é capturada na entrada "bind-response" da coleção Variables no objeto context.

Se o tempo de execução do Dapr falhar por algum motivo e responder com um erro, a seção "on-error" será acionada e a resposta recebida do tempo de execução do Dapr será retornada ao chamador literalmente. Caso contrário, a resposta padrão 200 OK será retornada.

A seção "back-end" está vazia e a solicitação não é 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>

Para obter mais informações sobre como trabalhar com políticas, consulte: