En este documento se proporciona información sobre la publicación de mensajes.
Una aplicación de editor crea y envía mensajes a un tema. Pub/Sub ofrece la entrega de mensajes al menos una vez y la ordenación con el mejor esfuerzo posible a los suscriptores.
El flujo general de una solicitud de editor es el siguiente:
- Crea un mensaje que contenga tus datos.
- Envía una solicitud al servidor de Pub/Sub para publicar el mensaje en el tema especificado.
Antes de empezar
Antes de configurar el flujo de trabajo de publicación, asegúrate de que has completado las siguientes tareas:
- Consulta información sobre el flujo de trabajo de publicación.
- Crea un tema.
- Elige y crea una suscripción.
Roles obligatorios
Para obtener los permisos que necesitas para publicar mensajes en un tema, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Publicador de Pub/Sub (roles/pubsub.publisher) en el tema.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Necesitas permisos adicionales para crear o actualizar temas y suscripciones.
Formato de los mensajes
Un mensaje consta de campos con los datos y los metadatos del mensaje. Especifica al menos uno de los siguientes elementos en el mensaje:
- Los datos del mensaje
- Una clave de ordenación
- Atributos con metadatos adicionales
El servicio Pub/Sub añade los siguientes campos al mensaje:
- Un ID de mensaje único del tema.
- Marca de tiempo que indica cuándo recibe el mensaje el servicio Pub/Sub.
Para obtener más información sobre los mensajes, consulta Formato de los mensajes.
Publica mensajes
Puedes publicar mensajes con la Google Cloud consola, la CLI de Google Cloud, la API Pub/Sub y las bibliotecas de cliente. Las bibliotecas de cliente pueden publicar mensajes de forma asíncrona.
En los siguientes ejemplos se muestra cómo publicar un mensaje en un tema.
Consola
Para publicar un mensaje, sigue estos pasos:
En la Google Cloud consola, ve a la página Temas de Pub/Sub.
Haz clic en el ID del tema.
En la página Detalles del tema, en Mensajes, haz clic en Publicar mensaje.
En el campo Cuerpo del mensaje, introduce los datos del mensaje.
Haz clic en Publicar.
gcloud
Para publicar un mensaje, usa el comando gcloud pubsub topics publish:
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE_DATA \ [--attribute=KEY="VALUE",...]
Haz los cambios siguientes:
- TOPIC_ID: ID del tema
- MESSAGE_DATA: una cadena con los datos del mensaje.
- KEY: la clave de un atributo de mensaje
- VALUE: el valor de la clave del atributo de mensaje
REST
Para publicar un mensaje, envía una solicitud POST como la siguiente:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID:publish Content-Type: application/json Authorization: Bearer $(gcloud auth application-default print-access-token)
Haz los cambios siguientes:
- PROJECT_ID: el ID del proyecto que contiene el tema
- TOPIC_ID: el ID del tema
Especifica los siguientes campos en el cuerpo de la solicitud:
{
"messages": [
{
"attributes": {
"KEY": "VALUE",
...
},
"data": "MESSAGE_DATA",
}
]
}Haz los cambios siguientes:
- KEY: la clave de un atributo de mensaje
- VALUE: el valor de la clave del atributo de mensaje
- MESSAGE_DATA: cadena codificada en base64 con los datos del mensaje
El mensaje debe contener un campo de datos no vacío o al menos un atributo.
Si la solicitud se realiza correctamente, la respuesta es un objeto JSON con el ID del mensaje. En el siguiente ejemplo se muestra una respuesta con un ID de mensaje:
{
"messageIds": [
"19916711285",
]
}C++
Antes de probar este ejemplo, sigue las instrucciones de configuración de C++ que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración de C# que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de C# de Pub/Sub.
Go
En el siguiente ejemplo se usa la versión principal de la biblioteca de cliente de Go Pub/Sub (v2). Si sigues usando la biblioteca v1, consulta la guía de migración a la versión 2. Para ver una lista de ejemplos de código de la versión 1, consulta los ejemplos de código obsoletos.
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Pub/Sub.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java que se indican en la guía de inicio rápido sobre cómo usar bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.