Partilhar via


Enviar mensagem para Pub/Sub tópico

APLICA-SE A: Developer | Prémio

A publish-to-dapr política instrui o API Management gateway a enviar uma mensagem para um tópico Publicar/Assinar do Dapr. A política faz isso fazendo uma solicitação HTTP POST para http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}, substituindo parâmetros de modelo e adicionando conteúdo especificado na declaraçã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 implementa a semântica Pub/Sub. 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

<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <!-- message content -->
</publish-to-dapr>

Atributos

Atributo Description Necessário Predefinição
nome pubsub O nome do componente PubSub de destino. Mapeia para o parâmetro pubsubname no Dapr. Se não estiver presente, o valor do topic atributo deve estar na forma de pubsub-name/topic-name. São permitidas expressões de política. Não Nenhuma
topic O nome do tópico. Mapeia para o parâmetro topic no Dapr. São permitidas expressões de política. Sim N/A
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

Utilização

Notas de utilização

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

Exemplo

O exemplo a seguir demonstra o envio do corpo da solicitação atual para o tópico "novo" do componente "orders" Pub/Sub. A resposta recebida do tempo de execução do Dapr é armazenada na entrada "dapr-response" da coleção Variables no objeto de contexto .

Se o tempo de execução do Dapr não conseguir localizar o tópico de destino, por exemplo, e responder com um erro, a seção "on-error" será acionada. A resposta recebida do tempo de execução do Dapr é retornada ao chamador textualmente. 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 />
        <publish-to-dapr
           pubsub-name="orders"
               topic="new"
               response-variable-name="dapr-response">
            @(context.Request.Body.As<string>())
        </publish-to-dapr>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="pubsub-response" />
    </on-error>
</policies>

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