Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- Esta directiva está actualmente en versión preliminar.
- Para conocer los requisitos previos y en segundo plano para enviar mensajes a Azure Service Bus, consulte Envío de mensajes a Azure Service Bus desde Azure API Management.
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. | Sí |
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
- Secciones de directiva: entrantes, salientes y en error
- Ámbitos de la directiva: global, producto, API y operación
- Puertas de enlace: clásicas
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>
Directivas relacionadas
Contenido relacionado
Para obtener más información sobre cómo trabajar con directivas, consulte:
- Tutorial: Transformación y protección de una API
- Referencia de políticas para una lista completa de declaraciones de políticas y su configuración
- Expresiones de política
- Establecimiento o edición de directivas
- Reutilizar configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Repositorio de área de juegos de directivas
- Conjunto de políticas de Azure API Management
- Obtener ayuda de Copilot para crear, explicar y solucionar problemas de directivas