Compartir vía


Enviar mensaje de Service Bus

SE APLICA A: Developer | Básico | Estándar | Prima

La send-service-bus-message directiva envía un mensaje a una cola o tema de Azure Service Bus. La solicitud de API puede ser reenviada opcionalmente al servicio backend.

Nota:

Nota:

Establezca los elementos de la política y sus elementos secundarios en el orden proporcionado en la declaración de política. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Declaración 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

Atributo Description Obligatorio Predeterminado
queue-name Especifica el nombre de la cola de Service Bus a la que se va a enviar el mensaje. Se permiten expresiones de directiva y valores con nombre. Se debe especificar o queue-nametopic-name . No N/A
topic-name Especifica el nombre del tema de Service Bus al que se va a enviar el mensaje. Se permiten expresiones de directiva y valores con nombre. Se debe especificar o queue-nametopic-name . No N/A
namespace Especifica el nombre de dominio completo del espacio de nombres de Service Bus. Se permiten expresiones de directiva y valores con nombre. No N/A
client-id Especifica el identificador de cliente de la identidad administrada asignada por el usuario para autenticarse con Service Bus. A la identidad se le debe asignar el rol Remitente de datos de Azure Service Bus. Se permiten expresiones de directiva y valores con nombre. Si no se especifica, se usa la identidad asignada por el sistema. No N/A

Elements

Elemento Description Obligatorio
payload Especifica la carga del mensaje que se va a enviar al bus de servicio. Se permiten expresiones de directiva y valores con nombre.
message-properties Colección de message-property subelementos que especifican los metadatos que se van a pasar con la carga del mensaje. Cada message-property uno consta de un par nombre-valor. Se permiten expresiones de directiva y valores con nombre. No

Usage

Notas de uso

  • Debe crear previamente la cola o el tema de Azure Service Bus que recibe un mensaje.
  • Esta directiva se puede usar varias veces por definición de directiva.

Examples

Envío de un mensaje a una cola de Service Bus

En este ejemplo, se envía un mensaje que consta del cuerpo de la solicitud a una cola de Service Bus. La instancia de API Management usa una identidad asignada por el usuario para el acceso. A continuación, la solicitud se reenvía al servicio 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>

Envío de un mensaje a un tema de Service Bus

En este ejemplo, se envía un mensaje que consta del cuerpo de la solicitud a un tema de Service Bus. La instancia de API Management usa una identidad asignada por el sistema para el acceso. A continuación, la solicitud se reenvía al servicio 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 un mensaje y metadatos

En este ejemplo, se envía un mensaje que consta del cuerpo de la solicitud a un tema de Service Bus y se establece una propiedad message para enviar metadatos con la carga. La instancia de API Management usa una identidad asignada por el sistema para el acceso. A continuación, la solicitud se reenvía al servicio 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 mensaje y devolver inmediatamente

En este ejemplo, se envía un mensaje que consta del cuerpo de la solicitud a un tema de Service Bus. La instancia de API Management usa una identidad asignada por el sistema para el acceso. A 201 continuación, se devuelve un código de estado de respuesta al autor de la llamada.

<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 obtener más información sobre cómo trabajar con directivas, consulte: