Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: Desenvolvedor | Básico | Padrão | Prêmio
A send-service-bus-message política envia uma mensagem para um tópico ou fila do Barramento de Serviço do Azure. Você pode opcionalmente encaminhar a requisição da API para o serviço backend.
Observação
- Para obter planos de fundo e pré-requisitos para enviar mensagens ao Barramento de Serviço do Azure, consulte Como enviar mensagens para o Barramento de Serviço do Azure do Gerenciamento de API do Azure.
Observação
Defina os elementos e os elementos filhos da política na ordem fornecida no enunciado da política. Saiba mais sobre como definir e editar as 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 | Padrão |
|---|---|---|---|
queue-name |
Especifica o nome da fila do barramento de serviço para o qual enviar a mensagem. Expressões de política e valores nomeados são permitidos.
queue-name Ou topic-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.
queue-name Ou topic-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 autenticar com o barramento de serviço. A identidade deve ser atribuída à função de Remetente de Dados do Barramento de Serviço do Azure. Expressões de política e valores nomeados são permitidos. Se você não especificar esse atributo, a identidade atribuída ao sistema é usada. | Não | N/A |
message-id |
Identificador da mensagem. Deve ser um GUID válido. Expressões de política são permitidas. Se omitido, o Gerenciamento de API gera um GUID. | Não | GUID Gerado |
session-id |
Identificador de sessão do Barramento de Serviço usado para agrupar mensagens relacionadas. Deve ser um GUID válido. Expressões de política são permitidas. | 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ções sobre a operação de envio do Barramento de Serviço. | Não | N/A |
ignore-error |
Se uma falha de envio do Barramento de Serviço 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 você especifica response-variable-name, o Gerenciamento de API armazena informações sobre a operação de envio do Barramento de Serviço nessa variável de contexto. Em caso de sucesso, contém MessageId, SessionId, e TimeToLive. Em uma falha de envio ignorada, ele contém Error.Reason e Error.Message.
Elements
| Elemento | Description | Obrigatório |
|---|---|---|
payload |
Especifica o conteúdo da mensagem a ser enviada para o 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 o conteúdo 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 de política: global, produto, API, operação
- Gateways: clássico
Notas de utilização
- Você deve criar previamente a fila ou o tópico do Barramento de Serviço do Azure que recebe uma mensagem.
- Você pode usar essa política várias vezes por definição de política.
- Se você omitir
message-id, o Gerenciamento de API gera um GUID. - Os valores e
session-idconfiguradosmessage-iddevem ser GUIDs válidos. - Use
session-idquando a entidade Barramento de Serviço exigir sessões. -
time-to-liveusa umTimeSpanvalor como00:10:00. -
ignore-errorVale para falhas de envio. Configuração inválida de mensagens, como um GUID ou TTL inválidos, ainda causa falha na política.
Exemplos
Enviar uma mensagem para uma fila do barramento de serviço
Neste exemplo, uma mensagem composta pelo corpo da solicitação é enviada para a fila de ordens. O ID da solicitação se torna o ID da mensagem, a mensagem expira após 10 minutos, e a informação de envio é armazenada em serviceBusResult. Uma falha de envio invoca o tratamento de erros de gerenciamento de API. A instância de Gerenciamento de API usa uma identidade atribuída pelo usuário para acesso. Em seguida, a solicitaçã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, você envia uma mensagem que contém o corpo da solicitação para um tópico do barramento de serviço. A instância de Gerenciamento de API usa uma identidade atribuída pelo sistema para acesso. Depois, você encaminha a solicitação 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, você envia uma mensagem que contém o corpo da solicitação para um tópico do barramento 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 pelo sistema para acesso. Depois, você encaminha a solicitação 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, você envia uma mensagem que contém o corpo da solicitação para um tópico do barramento de serviço. A instância de Gerenciamento de API usa uma identidade atribuída pelo sistema para acesso. Depois, você retorna imediatamente um 201 código de status de resposta para o interlocutor.
<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: 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 trechos de política
- repositório de exemplos Policy
- Kit de ferramentas de políticas do Gerenciamento de API do Azure
- Obter assistência do Copilot para criar, explicar e solucionar problemas de políticas