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 los temas de importación y cómo crear uno, consulta Acerca de los temas de importación.
Para crear un tema, puedes usar la Trusted Cloud consola, 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 requeridos
Para obtener los permisos que necesitas
para crear un tema,
pídele a tu administrador que te otorgue el rol de IAM de
editor de Pub/Sub(roles/pubsub.editor
)
en tu 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 un tema. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un tema:
-
Otorga este permiso para crear un tema en el proyecto:
pubsub.topics.create
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 adjuntarla a un tema ubicado en otro proyecto. 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 que se cree. La suscripción predeterminada tiene las siguientes propiedades:
- ID de suscripción de
-sub
- Tipo de entrega de extracción
- Duración de retención de mensajes de siete días
- Vencimiento después de 31 días de inactividad
- Plazo de confirmación de 10 segundos
- Política de reintento inmediato
Habilitar transferencia
Habilitar esta propiedad te permite transferir datos de transmisión desde fuentes externas a un tema para que puedas usar las funciones de Trusted Cloud. Para crear un tema de importación para la transferencia, consulta lo siguiente:
Habilitar la retención de mensajes
Especifica el tiempo que el tema de Pub/Sub retiene los mensajes después de la publicación. Una vez que finaliza la duración de retención del mensaje, Pub/Sub puede descartar el mensaje, sin importar el estado de confirmación. Se cobran tarifas de almacenamiento de mensajes por almacenar todos los mensajes publicados en el tema.
- Valor predeterminado = No habilitado
- El valor mínimo es de 10 minutos.
- El valor máximo es de 31 días.
Exportar datos de mensajes a BigQuery
Si habilitas esta propiedad, podrás 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 suscriptor independiente. Para obtener más información sobre las suscripciones a BigQuery, consulta Suscripciones a BigQuery.
Crear copia de seguridad de los datos de mensajes en Cloud Storage
Habilitar esta propiedad te permite crear una suscripción a Cloud Storage que escribe los mensajes en una tabla de Cloud Storage existente a medida que se reciben. No es necesario configurar un cliente suscriptor independiente. Para obtener más información sobre las suscripciones a Cloud Storage, consulta Suscripciones a Cloud Storage.
Transformaciones
Los SMT de temas permiten realizar modificaciones ligeras en los datos y atributos de los mensajes directamente en Pub/Sub. Esta función permite limpiar, filtrar o convertir el formato de los datos antes de que se publiquen los mensajes en el tema.
Para obtener más información sobre las SMT, consulta la descripción general de las SMT.
Google Cloud-powered encryption key
Especifica que el tema está encriptado conGoogle Cloud-powered encryption keys. De forma predeterminada, Pub/Sub encripta los mensajes con Google Cloud-powered encryption keys , por lo que elegir esta opción mantiene el comportamiento predeterminado. Google se encarga de la administración y rotación de claves de forma automática, lo que garantiza que tus mensajes estén siempre protegidos con la encriptación más sólida disponible. Esta opción no requiere ninguna configuración adicional. Para obtener más información sobre Google Cloud-powered encryption keys, consulta Encriptación predeterminada con Google Cloud-powered encryption keys.
Clave de Cloud KMS
Especifica si el tema está encriptado con una clave de encriptación administrada por el cliente (CMEK). De forma predeterminada, Pub/Sub encripta los mensajes con Google Cloud-powered encryption keys . Si especificas esta opción, Pub/Sub usa el patrón de encriptación de sobre con CMEK. En este enfoque, 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 Trusted Cloud , ve a la página Crear tema de Pub/Sub.
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 para asignar nombres.
Mantén la opción Agregar una suscripción predeterminada.
Opcional. No selecciones las otras opciones.
Haga clic en Crear tema.
gcloud
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í:
- PROJECT_ID es el ID del proyecto.
- TOPIC_ID es el ID del tema.
Respuesta:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
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++.
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#.
Go
En el siguiente ejemplo, se usa la versión principal de la biblioteca cliente de Pub/Sub de Go (v2). Si aún usas la biblioteca de la versión 1, consulta la guía de migración a la versión 2. Para ver una lista de muestras de código de la versión 1, consulta las muestras de código obsoletas.
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.
Java
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.
Node.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.
Node.ts
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.
PHP
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.
Python
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.
Ruby
En el siguiente ejemplo, se usa la versión 3 de la biblioteca cliente de Pub/Sub de Ruby. Si aún usas la biblioteca de la versión 2, consulta la guía de migración a la versión 3. Para ver una lista de muestras de código de Ruby v2, consulta las muestras de código obsoletas.
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.
¿Qué sigue?
Elige el tipo de suscripción para tu tema.
Obtén información para publicar un mensaje en un tema.
Soluciona problemas relacionados con un tema.
Crea o modifica un tema con gcloud CLI, APIs de REST o bibliotecas cliente.