En Pub/Sub, un tema es un recurso con nombre que representa un feed de mensajes. Antes de poder publicar un tema o suscribirte a él, debes crearlo. Pub/Sub admite dos tipos de temas: un tema estándar y un tema de importación.
En este documento, se describe cómo crear un tema estándar de Pub/Sub. Si quieres obtener más información sobre un tema de importación y cómo crear uno, consulta Acerca de los temas de importación.
Para crear un tema, puedes usar la consola de Google Cloud, Google Cloud CLI, la biblioteca cliente o la API de Pub/Sub.
Antes de comenzar
Obtén información sobre el servicio de Pub/Sub y su terminología.
Obtén más información sobre el proceso de publicación.
Roles y permisos obligatorios para administrar temas
Para obtener los permisos que necesitas para crear y administrar temas,
pídele a tu administrador que te otorgue el rol de IAM de
editor de Pub/Sub(roles/pubsub.editor
)
en tu tema o proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear y administrar temas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y administrar temas:
-
Crea un tema:
pubsub.topics.create
-
Borrar un tema:
pubsub.topics.delete
-
Desconecta una suscripción de un tema:
pubsub.topics.detachSubscription
-
Obtener un tema:
pubsub.topics.get
-
Mencionar un tema:
pubsub.topics.list
-
Publicar en un tema:
pubsub.topics.publish
-
Actualizar un tema:
pubsub.topics.update
-
Obtén la política de IAM de un tema:
pubsub.topics.getIamPolicy
-
Configura la política de IAM para un tema:
pubsub.topics.setIamPolicy
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Puedes configurar el control de acceso a nivel de proyecto y a nivel de los recursos individuales. Puedes crear una suscripción en un proyecto y vincularla a un tema ubicado en un proyecto diferente. Asegúrate de tener los permisos necesarios para cada proyecto.
Propiedades de un tema
Cuando creas o actualizas un tema, debes especificar sus propiedades.
Agregar una suscripción predeterminada
Agrega una suscripción predeterminada al tema de Pub/Sub. Puedes crear otra suscripción para el tema después de crearlo. La suscripción predeterminada tiene las siguientes propiedades:
- ID de la suscripción
-sub
- Tipo de entrega de extracción
- Duración de retención de mensajes de siete días
- Vence después de 31 días de inactividad
- Plazo límite de confirmación de 10 segundos
- Política de reintento inmediato
Usar un esquema
Un esquema es un formato que debe seguir el campo de datos del mensaje. Un esquema es un contrato entre el publicador y el suscriptor que Pub/Sub aplica de forma forzosa. Los esquemas de temas ayudan a estandarizar los tipos de mensajes y los permisos para permitir que los consuman diferentes equipos de tu organización. Pub/Sub crea una autoridad central para los tipos de mensajes y los permisos. Para crear un tema con un esquema, consulta Descripción general del esquema.
Habilitar transferencia
Habilitar esta propiedad te permite transferir datos de transmisión de fuentes externas a un tema para que puedas usar las funciones de Google Cloud. Para crear un tema de importación para la transferencia, consulta lo siguiente:
Habilitar la retención de mensajes
Especifica durante cuánto tiempo el tema de Pub/Sub retiene los mensajes después de la publicación. Después de que finalice la duración de retención del mensaje, Pub/Sub puede descartar el mensaje, sin importar su estado de confirmación. Se cobran tarifas de almacenamiento de mensajes por almacenar todos los mensajes publicados en el tema.
- Valor predeterminado: No habilitado
- Valor mínimo = 10 minutos
- Valor máximo = 31 días
Exportar datos de mensajes a BigQuery
Si habilitas esta propiedad, puedes crear una suscripción a BigQuery que escriba mensajes en una tabla de BigQuery existente a medida que se reciben. No es necesario configurar un cliente de suscriptor independiente. Para obtener más información sobre las suscripciones a BigQuery, consulta Suscripciones a BigQuery.
Cómo exportar datos de mensajes a Cloud Storage
Si habilitas esta propiedad, puedes crear una suscripción a Cloud Storage que escriba mensajes en una tabla de Cloud Storage existente a medida que se reciben. No es necesario configurar un cliente de suscriptor independiente. Para obtener más información sobre las suscripciones a Cloud Storage, consulta Suscripciones a Cloud Storage.
Clave de encriptación administrada por Google
Especifica que el tema está encriptado con claves de encriptación administradas por Google. Pub/Sub encripta los mensajes con claves administradas por Google de forma predeterminada, por lo que, si eliges esta opción, se mantiene el comportamiento predeterminado. Google administra y rota las claves automáticamente, lo que garantiza que tus mensajes siempre estén protegidos con la encriptación más segura disponible. Esta opción no requiere ninguna configuración adicional. Para obtener más información sobre las claves de encriptación administradas por Google, consulta Encriptación predeterminada con claves que son propiedad de Google y están administradas por Google.
Clave de Cloud KMS
Especifica si el tema está encriptado con una clave de encriptación administrada por el cliente (CMEK). Pub/Sub encripta los mensajes con claves que son propiedad de Google y están administradas por Google de forma predeterminada. Si especificas esta opción, Pub/Sub usa el patrón de encriptación de sobre con CMEK. De esta manera, Cloud KMS no encripta los mensajes. En cambio, Cloud KMS encripta las claves de encriptación de datos (DEK) que Pub/Sub crea para cada tema. Pub/Sub encripta los mensajes con la DEK más nueva que se generó para el tema. Pub/Sub desencripta los mensajes poco antes de entregarlos a los suscriptores. Para obtener más información sobre cómo crear una clave, consulta Configura la encriptación de mensajes.
Crea un tema
Crea un tema antes de poder publicarlo o suscribirte a él.
Console
Para crear un tema, sigue estos pasos:
En la consola de Google Cloud, ve a la página Temas de Pub/Sub.
Haga clic en Crear tema.
En el campo ID de tema, ingresa un ID para tu tema. Para obtener más información sobre cómo nombrar temas, consulta los lineamientos de nombres.
Mantén la opción Agregar una suscripción predeterminada.
Opcional. No selecciones las otras opciones.
Haz clic en Crear tema.
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.
-
Para crear un tema, ejecuta el comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
REST
Para crear un tema, usa el método projects.topics.create
:
La solicitud debe autenticarse con un token de acceso en el encabezado Authorization
. A fin de obtener un token de acceso para las credenciales predeterminadas actuales de la aplicación, usa el siguiente comando: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Aquí:
Respuesta:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de C# de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Antes de probar esta muestra, sigue las instrucciones de configuración de Go que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Go de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Node.js
PHP
Antes de probar esta muestra, sigue las instrucciones de configuración de PHP que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de PHP de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Python de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Ruby de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Restricciones de las políticas de la organización
Las políticas de la organización pueden restringir la creación de temas. Por ejemplo, una política puede restringir el almacenamiento de mensajes en una región de Compute Engine. Para evitar errores de creación de temas, examina y actualiza las políticas de la organización según sea necesario antes de crear un tema.
Si tu proyecto es nuevo, espera unos minutos para que se inicialice la política de organización antes de crear un tema.
Ir a Políticas de la organización
Para obtener más información, consulta Configura políticas de almacenamiento de mensajes.
¿Qué sigue?
Elige el tipo de suscripción para tu tema.
Obtén información para publicar un mensaje en un tema.
Crea o modifica un tema con gcloud CLI, APIs de REST o bibliotecas cliente.