Compartilhar via


Enviar mensagem do barramento de serviço

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. A solicitação de API pode ser opcionalmente encaminhada para o serviço backend.

Observação

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-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 não for especificada, a identidade atribuída pelo sistema será usada. Não N/A

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

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.
  • Essa política pode ser usada várias vezes por definição de política.

Exemplos

Enviar uma mensagem para uma fila do barramento de serviço

Neste exemplo, uma mensagem que consiste no corpo da solicitação é enviada para uma fila do barramento de serviço. 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" client-id="00001111-aaaa-2222-bbbb-3333cccc4444" 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 para um tópico do barramento de serviço

Neste exemplo, uma mensagem que consiste no corpo da solicitação é enviada 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. Em seguida, a solicitação é encaminhada para o serviço de back-end.

<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, uma mensagem que consiste no corpo da solicitação é enviada para um tópico do barramento de serviço e uma propriedade de mensagem é definida para enviar metadados com o conteúdo. A instância de Gerenciamento de API usa uma identidade atribuída pelo sistema para acesso. Em seguida, a solicitação é encaminhada para o serviço de back-end.

<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, uma mensagem que consiste no corpo da solicitação é enviada 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. Um 201 código de status de resposta é retornado imediatamente 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>

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