En este documento, se muestra cómo publicar mensajes en un tema con un esquema.
Antes de comenzar
Antes de configurar el flujo de trabajo de publicación, asegúrate de haber completado las siguientes tareas:
- Comprender cómo funcionan los esquemas de Pub/Sub
- Asociar un esquema con un tema
Roles obligatorios
Para obtener los permisos que necesitas para publicar mensajes en un tema,
pídele a tu administrador que te otorgue el rol de IAM de
Publicador de Pub/Sub (roles/pubsub.publisher
) en el tema.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Necesitas permisos adicionales para crear o actualizar temas y suscripciones.Publica mensajes con un esquema
Puedes publicar mensajes en un tema asociado con un esquema. Debes codificar los mensajes en el esquema y el formato que especificaste cuando creaste el tema. Un mensaje coincide con el esquema asociado con el tema si coincide con cualquiera de las revisiones del esquema en el rango permitido de revisiones. Los mensajes se evalúan en función de las revisiones en orden desde la revisión más reciente permitida hasta que se encuentra una coincidencia o se alcanza la revisión más antigua permitida. Pub/Sub agrega los siguientes atributos a un mensaje que se publicó correctamente en un tema asociado con un esquema:
googclient_schemaname
: El nombre del esquema que se usa para la validación.googclient_schemaencoding
: Es la codificación del mensaje, ya sea JSON o BINARY.googclient_schemarevisionid
: Es el ID de revisión del esquema que se usa para analizar y validar el mensaje. Cada revisión tiene un ID de revisión único asociado. El ID de revisión es un UUID de ocho caracteres generado automáticamente.
Cuando un mensaje no coincide con ninguna de las revisiones de esquemas permitidas por el tema, Pub/Sub muestra un error INVALID_ARGUMENT
a la solicitud de publicación.
Pub/Sub solo evalúa los mensajes en función de las revisiones de esquemas en el momento de la publicación. Confirmar una nueva revisión de esquema o cambiar el esquema asociado con un tema después de publicar un mensaje no vuelve a evaluar ese mensaje ni cambia ninguno de los atributos del mensaje del esquema adjunto.
Puedes publicar mensajes en un tema con un esquema asociado en un proyecto de Google Cloud mediante la consola de Google Cloud, gcloud CLI, la API de Pub/Sub o las bibliotecas cliente de Cloud.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Publica un mensaje de ejemplo con el comando gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE
Reemplaza lo siguiente:
TOPIC_ID: Es el nombre del tema que ya creaste.
MESSAGE: Es el mensaje publicado en el tema. Un mensaje de muestra puede ser
{"name": "Alaska", "post_abbr": "AK"}
.
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
Avro ProtoC#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Avro ProtoGo
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Avro ProtoJava
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Avro ProtoNode.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Avro Búfer de protocoloNode.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Avro Búfer de protocoloPHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para PHP.
Avro Búfer de protocoloPython
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Avro Búfer de protocoloRuby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Avro Búfer de protocolo¿Qué sigue?
Para restringir las ubicaciones en las que Pub/Sub almacena los datos de los mensajes, consulta Cómo restringir las ubicaciones de recursos de Pub/Sub.
Si quieres obtener más información sobre cómo recibir mensajes, consulta Elige un tipo de suscripción.