Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Versión: 1.2.0
Publica mensajes en un tema del servicio Google Cloud Pub/Sub.
Este contenido proporciona una referencia para configurar y usar esta extensión.
Requisitos previos
Antes de usar esta extensión desde un proxy de API, debes hacer lo siguiente:
Crea un tema de Cloud Pub/Sub, como se describe en Guía de inicio rápido: Uso de la consola.
Una vez que tengas el tema, otorga permiso para publicar en tu tema de Cloud Pub/Sub. Por ejemplo, puedes usar el rol
roles/pubsub.publisherpara publicar en temas. Para obtener más información sobre los roles de Cloud Pub/Sub, consulta Control de acceso.Usa GCP Console para generar una clave para la cuenta de servicio.
Usa el contenido del archivo JSON de claves resultante cuando agregues y configures la extensión con la referencia de configuración.
Acerca de Cloud Pub/Sub
Cloud Pub/Sub proporciona mensajería asíncrona de varios a varios que separa los remitentes de los receptores. Cloud Pub/Sub ofrece una mensajería duradera y de baja latencia que ayuda a los desarrolladores a integrar rápidamente sistemas alojados en Google Cloud Platform y de forma externa.
Si recién comienzas a usar Cloud Pub/Sub, consulta las guías de inicio rápido en la documentación de Cloud Pub/Sub.
Ejemplos
En los siguientes ejemplos, se ilustra cómo configurar la compatibilidad con las acciones de la extensión de Cloud Pub/Sub mediante la política ExtensionCallout.
Publicar un mensaje
En este ejemplo, la acción publish publica un mensaje simple en un tema especificado en la configuración de la extensión. La acción publish devuelve el ID del mensaje publicado en el tema en el que se publicó.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
<DisplayName>Publish Message</DisplayName>
<Connector>cloud-pub-sub-extension-example</Connector>
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
<Output>topic.message.id</Output>
</ConnectorCallout>
La siguiente política de asignación de mensajes usa el valor de la variable que almacena la respuesta de la extensión para asignar la carga útil de la respuesta.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
<DisplayName>Get Topic Message ID</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{topic.message.id}</Payload>
</Set>
</AssignMessage>
En este ejemplo, los datos de respuesta se muestran como JSON, como se muestra a continuación.
{"messageId":"165918654986954"}
Acciones
publicar
Publica un mensaje en el tema especificado en la configuración de esta extensión.
Sintaxis
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish"
}]]></Input>
Ejemplo
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
Parámetros de solicitud
| Parámetro | Descripción | Tipo | Predeterminado | Obligatorio |
|---|---|---|---|---|
| mensaje | El mensaje que se publicará. | String | Ninguno | Sí. |
Respuesta
JSON que contiene el ID del mensaje tal como se publicó en el tema. Por ejemplo:
{"messageId":"165918654986954"}
Referencia de la configuración
Usa lo siguiente cuando configures e implementes esta extensión para usarla en proxies de API.
Propiedades comunes de la extensión
Las siguientes propiedades están presentes para cada extensión.
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
name |
Nombre que asignas a esta configuración de la extensión. | Ninguna | Sí |
packageName |
Nombre del paquete de extensiones proporcionado por Apigee Edge. | Ninguna | Sí |
version |
El número de versión del paquete de extensiones desde el que quieres configurar la extensión. | Ninguna | Sí |
configuration |
Es un valor de configuración específico para la extensión que agregas. Consulta Propiedades para este paquete de extensiones | Ninguna | Sí |
Propiedades de este paquete de extensión
| Propiedad | Descripción | Predeterminado | Obligatorio |
|---|---|---|---|
topic |
El tema en el que se publicará. Obtén este valor del servicio Pub/Sub, como desde la consola de GCP para el servicio. Por ejemplo, el nombre del tema puede tener el formato projects/GCP-PROJECT-ID/topics/TOPIC-NAME. |
Ninguno | Sí. |
credentials |
Cuando se ingresa en la consola de Apigee Edge, este es el contenido del archivo de claves de tu cuenta de servicio. Cuando se envía a través de la API de administración, es un valor codificado en Base64 generado a partir del archivo de claves de la cuenta de servicio. | Ninguno | Sí. |