Envío de un mensaje al tema de publicación/suscripción
SE APLICA A: Desarrollador | Premium
La directiva publish-to-dapr
indica a la puerta de enlace de API Management que envíe un mensaje a un tema de publicación/suscripción de Dapr. Para ello, la directiva realiza una solicitud HTTP POST a http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}
reemplazando los parámetros de la plantilla y agregando el contenido especificado en la instrucción de directiva.
La directiva presupone que el entorno de ejecución de Dapr se está ejecutando en un contenedor sidecar situado en el mismo pod que la puerta de enlace. El entorno de ejecución de Dapr implementa la semántica de publicación/suscripción. Obtenga más información sobre la integración de Dapr con API Management.
Nota:
Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.
Instrucción de la directiva
<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<!-- message content -->
</publish-to-dapr>
Atributos
Atributo | Descripción | Necesario | Valor predeterminado |
---|---|---|---|
pubsub-name | Nombre del componente PubSub de destino. Se asigna al parámetro pubsubname de Dapr. Si no está presente, el valor del atributo topic debe tener el formato pubsub-name/topic-name . Se permiten expresiones de directiva. |
No | None |
topic | El nombre del tema. Se asigna al parámetro topic de Dapr. Se permiten expresiones de directiva. | Sí | N/D |
ignore-error | Si se establece en true , indica a la directiva que no desencadene la sección "on-error" tras recibir un error del entorno de ejecución de Dapr. No se permiten expresiones de directiva. |
No | false |
response-variable-name | Nombre de la entrada de la colección Variables que se va a usar para almacenar la respuesta del entorno de ejecución de Dapr. No se permiten expresiones de directiva. | No | None |
timeout | Tiempo (en segundos) que se debe esperar a que responda el entorno de ejecución de Dapr. Puede oscilar entre 1 y 240 segundos. Se permiten expresiones de directiva. | No | 5 |
template | Motor de creación de plantillas que se usa para transformar el contenido del mensaje. "Liquid" es el único valor admitido. | No | None |
content-type | Tipo de contenido del mensaje. "application/json" es el único valor admitido. | No | None |
Uso
- Secciones de la directiva: inbound (entrada)
- Ámbitos de la directiva: global, producto, API y operación
- Puertas de enlace: autohospedadas
Notas de uso
La compatibilidad con Dapr debe estar habilitada en la puerta de enlace autohospedada.
Ejemplo
En el ejemplo siguiente, se muestra cómo se envía el cuerpo de la solicitud actual al tema "new" del componente de publicación/suscripción de "orders". La respuesta que se recibe del entorno de ejecución de Dapr se almacena en la entrada "dapr-response" de la colección Variables del objeto context.
Si, por ejemplo, el entorno de ejecución de Dapr no encuentra el tema de destino y responde con un error, se desencadena la sección "on-error". La respuesta que se recibe del entorno de ejecución de Dapr se devuelve literalmente al autor de la llamada. De lo contrario, se devuelve la respuesta predeterminada: 200 OK
.
La sección "backend" está vacía y la solicitud no se reenvía al back-end.
<policies>
<inbound>
<base />
<publish-to-dapr
pubsub-name="orders"
topic="new"
response-variable-name="dapr-response">
@(context.Request.Body.As<string>())
</publish-to-dapr>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="pubsub-response" />
</on-error>
</policies>
Directivas relacionadas
Contenido relacionado
Para más información sobre el trabajo con directivas, vea:
- Tutorial: Transformación y protección de una API
- Referencia de directivas para una lista completa de instrucciones de directivas y su configuración
- Expresiones de directiva
- Establecimiento o edición de directivas
- Reutilización de configuraciones de directivas
- Repositorio de fragmentos de código de directiva
- Creación de directivas mediante Microsoft Copilot en Azure