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
- Secções políticas: entrada
- Escopos da política: global, produto, API, operação
- Gateways: auto-hospedados
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>
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Recompra de trechos de política
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Criar políticas usando o Microsoft Copilot no Azure