Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A: Developer | Básico | Padrão | Prémio
A send-service-bus-message política envia uma mensagem para uma fila ou tópico do Barramento de Serviço do Azure. Pode, opcionalmente, encaminhar o pedido de API para o serviço backend.
Observação
- Para obter informações em segundo plano e pré-requisitos para enviar mensagens para o Barramento de Serviço do Azure, consulte Como enviar mensagens para o Barramento de Serviço do Azure a partir do Gerenciamento de API do Azure.
Observação
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
<send-service-bus-message
queue-name="service bus queue"
topic-name="service bus topic"
namespace="FQDN of service bus namespace"
client-id="ID of user-assigned managed identity"
message-id="message ID"
session-id="session ID"
time-to-live="message time to live"
response-variable-name="context variable name"
ignore-error="false">
<message-properties>
<message-property name="property-name">property-value</message-property>
<!-- if there are multiple properties, then add additional message-property elements -->
</message-properties>
<payload>"message content"</payload>
</send-service-bus-message>
Attributes
| Attribute | Description | Obrigatório | Default |
|---|---|---|---|
queue-name |
Especifica o nome da fila do barramento de serviço para a qual enviar a mensagem. Expressões de política e valores nomeados são permitidos. Ou queue-nametopic-name deve ser especificado. |
Não | N/A |
topic-name |
Especifica o nome do tópico do barramento de serviço para o qual enviar a mensagem. Expressões de política e valores nomeados são permitidos. Ou queue-nametopic-name deve ser especificado. |
Não | N/A |
namespace |
Especifica o nome de domínio totalmente qualificado do namespace do barramento de serviço. Expressões de política e valores nomeados são permitidos. | Não | N/A |
client-id |
Especifica a ID do cliente da identidade gerenciada atribuída pelo usuário para autenticação com o barramento de serviço. A identidade deve ser atribuída à função Remetente de Dados do Barramento de Serviço do Azure. Expressões de política e valores nomeados são permitidos. Se não especificar este atributo, é usada a identidade atribuída pelo sistema. | Não | N/A |
message-id |
Identificador de mensagem. Tem de ser um GUID válido. São permitidas expressões de política. Se omitido, a Gestão de APIs gera um GUID. | Não | GUID Gerado |
session-id |
Identificador de sessão do Service Bus usado para agrupar mensagens relacionadas. Tem de ser um GUID válido. São permitidas expressões de política. | Não | N/A |
time-to-live |
Quanto tempo a mensagem permanece disponível para processamento antes de expirar. Use um valor TimeSpan, por 00:10:00exemplo . |
Não | N/A |
response-variable-name |
Nome de uma variável de contexto que recebe informação sobre a operação de envio do Service Bus. | Não | N/A |
ignore-error |
Se um Service Bus falha no envio deve permitir que a execução da política continue.
true = continuar; false = invocar o tratamento normal de erros. |
Não | false |
Observação
Quando especificas response-variable-name, a API Management armazena informação sobre a operação de envio do Service Bus nessa variável de contexto. Em caso de sucesso, contém MessageId, SessionId, e TimeToLive. Numa falha de envio ignorada, contém Error.Reason e Error.Message.
Elements
| Elemento | Description | Obrigatório |
|---|---|---|
payload |
Especifica a carga útil da mensagem a ser enviada ao barramento de serviço. Expressões de política e valores nomeados são permitidos. | Yes |
message-properties |
Uma coleção de message-property subelementos que especificam metadados a serem passados com a carga útil da mensagem. Cada message-property um consiste em um par nome-valor. Expressões de política e valores nomeados são permitidos. |
Não |
Usage
- Seções de política: entrada, saída, erro
- Escopos da política: global, produto, API, operação
- Gateways: clássico
Notas de utilização
- Você deve pré-criar a fila ou o tópico do Barramento de Serviço do Azure que recebe uma mensagem.
- Pode usar esta apólice várias vezes por definição de apólice.
- Se omitir
message-id, API Management gera um GUID. - Os valores configurados
message-idesession-iddevem ser GUIDs válidos. - Use
session-idquando a entidade Service Bus necessita de sessões. -
time-to-liveusa umTimeSpanvalor como00:10:00. -
ignore-errorAplica-se a falhas de envio. A configuração inválida das mensagens, como um GUID ou TTL inválidos, ainda causa falhas na política.
Examples
Enviar uma mensagem para uma fila do barramento de serviço
Neste exemplo, uma mensagem composta pelo corpo do pedido é enviada para a fila de ordens. O ID do pedido torna-se o ID da mensagem, a mensagem expira após 10 minutos, e a informação de envio é armazenada em serviceBusResult. Uma falha de envio provoca o tratamento de erros na Gestão de APIs. A instância de Gerenciamento de API usa uma identidade atribuída pelo usuário para acesso. A solicitação é então encaminhada para o serviço de back-end.
<policies>
<inbound>
<send-service-bus-message
queue-name="orders"
namespace="contoso-messaging.servicebus.windows.net"
message-id="@(context.RequestId.ToString())"
time-to-live="00:10:00"
response-variable-name="serviceBusResult"
ignore-error="false">
<payload>
@(context.Request.Body.As<string>(preserveContent: true))
</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Enviar uma mensagem para um tópico do barramento de serviço
Neste exemplo, envia uma mensagem que contém o corpo do pedido para um tópico do bus de serviço. A instância de Gerenciamento de API usa uma identidade atribuída ao sistema para acesso. Depois, encaminha o pedido para o serviço de backend.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Enviar uma mensagem e metadados
Neste exemplo, envia uma mensagem que contém o corpo do pedido para um tópico do bus de serviço e define uma propriedade de mensagem para enviar metadados com a carga útil. A instância de Gerenciamento de API usa uma identidade atribuída ao sistema para acesso. Depois, encaminha o pedido para o serviço de backend.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<message-properties>
<message-property name="Customer">Contoso</message-property>
</message-properties>
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Enviar mensagem e retornar imediatamente
Neste exemplo, envia uma mensagem que contém o corpo do pedido para um tópico do bus de serviço. A instância de Gerenciamento de API usa uma identidade atribuída ao sistema para acesso. Depois, devolve imediatamente um 201 código de estado de resposta ao chamador.
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
<return-response>
<set-status code="201" reason="Created!" />
</return-response>
</inbound>
</policies>
Políticas relacionadas
Conteúdo relacionado
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íticas e as suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de políticas
- Repositório de trechos de políticas
- Exemplo de repotório
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Obtenha assistência do Copilot para criar, explicar e resolver problemas com políticas