Configura un tema y una suscripción de Pub/Sub

En App Design Center, puedes configurar un tema y una suscripción de Pub/Sub para proporcionar mensajería asíncrona y escalable que separe los productores de servicios que producen mensajes de los servicios que los procesan. Puedes personalizar las conexiones de los componentes y los parámetros de configuración de tu tema y suscripción según el módulo de Terraform terraform-google-pubsub.

Conexiones de componentes

En la siguiente tabla, se incluyen los componentes que puedes conectar a un tema o una suscripción de Pub/Sub, y las actualizaciones resultantes en tu aplicación y su código de Terraform generado.

Componente conectado

Actualizaciones de la aplicación

Información general

Plantilla de instancias de Compute Engine

  • Las instancias de Compute Engine pueden publicar mensajes en el tema de Pub/Sub y recibirlos de él.
  • El ID del tema de Pub/Sub se agrega a los metadatos de la plantilla de instancias de Compute Engine.
Plantillas de instancia

Cuenta de servicio

  • La cuenta de servicio puede administrar temas de Pub/Sub y extraer mensajes de las suscripciones.
  • El rol roles/pubsub.editor se agrega a la cuenta de servicio.
  • La información del nombre y el correo electrónico de la cuenta de servicio se agrega a la suscripción de extracción de Pub/Sub.
Control de acceso con IAM

BigQuery

  • La suscripción a Pub/Sub puede escribir mensajes en el conjunto de datos de BigQuery.
  • La información del conjunto de datos de BigQuery se agrega a los campos de la suscripción a BigQuery.
Suscripciones de BigQuery

Cloud Run

  • El servicio de Cloud Run puede recibir mensajes o publicar en el tema de Pub/Sub.
  • El ID del tema de Pub/Sub se agrega a las variables de entorno de Cloud Run.
  • Los roles roles/pubsub.publisher y roles/pubsub.subscriber se agregan a la cuenta de servicio de Cloud Run.
  • El servicio de Cloud Run se agrega a los campos de suscripción de envío y extracción de Pub/Sub.
Instructivo de uso de Pub/Sub con Cloud Run

Cloud Storage

  • La suscripción de Pub/Sub puede escribir mensajes en el bucket de Cloud Storage.
  • La información del bucket de Cloud Storage se agrega a los campos de la suscripción a Pub/Sub.
Suscripciones de Cloud Storage

Parámetros de configuración obligatorios

Si tu plantilla incluye un componente de Pub/Sub, debes configurar los siguientes parámetros antes de la implementación.

Nombre del parámetro

Descripción y restricciones

Información general

ID del proyecto

Es el proyecto en el que deseas implementar el recurso de Pub/Sub.

Configura componentes

Tema

name Lineamientos para asignar nombres a temas, suscripciones, esquemas o instantáneas

Parámetros de configuración opcionales

Los siguientes parámetros son opcionales. Para mostrar los parámetros avanzados, en el área Configuración, selecciona Mostrar campos avanzados.

Función

Nombre del parámetro

Información sobre la descripción y la restricción

Información general

Crear tema De forma predeterminada, se crea un tema. Anula la selección de la casilla de verificación si no quieres crear un tema. Crea un tema
Crea suscripciones De forma predeterminada, se crea una suscripción. Anula la selección de la casilla de verificación si no quieres crear una suscripción. Descripción general de la suscripción

Etiquetas de temas

Clave labels Informes de uso con etiquetas
Valor labels Informes de uso con etiquetas

Suscripciones de envío

Nombre name Lineamientos para asignar nombres a temas, suscripciones, esquemas o instantáneas
Segundos de plazo de confirmación ackDeadlineSeconds Plazo de confirmación
Extremo de envío pushEndpoint Extremos
X-goog-version Es el formato de la API de Pub/Sub del mensaje enviado. Por ejemplo, v1beta1. attributes
Correo electrónico de la cuenta de servicio de OIDC serviceAccountEmail Authentication
Público público Authentication
Política de vencimiento expirationPolicy Período de vencimiento
Tema de mensajes no entregados deadLetterTopic Tema de mensajes no entregados
Retener mensajes confirmados retainAckedMessages Retener mensajes confirmados
Duración de la retención de mensajes messageRetentionDuration Duración de la retención de mensajes
Cantidad máxima de intentos de entrega maxDeliveryAttempts Tema de mensajes no entregados
Retirada máxima maximumBackoff Política de reintentos
Retirada mínima minimumBackoff Política de reintentos
Filtro filter Filtro de suscripción
Habilita el orden de los mensajes enableMessageOrdering Ordenamiento de mensajes

Suscripciones de extracción

Nombre name Lineamientos para asignar nombres a temas, suscripciones, esquemas o instantáneas
Segundos de plazo de confirmación ackDeadlineSeconds Plazo de confirmación
Tema de mensajes no entregados deadLetterTopic Tema de mensajes no entregados
Cantidad máxima de intentos de entrega maxDeliveryAttempts Tema de mensajes no entregados
Retener mensajes confirmados retainAckedMessages Retener mensajes confirmados
Duración de la retención de mensajes messageRetentionDuration Duración de la retención de mensajes
Retirada máxima maximumBackoff Política de reintentos
Retirada mínima minimumBackoff Política de reintentos
Filtro filter Filtro de suscripción
Habilita el orden de los mensajes enableMessageOrdering Ordenamiento de mensajes
Cuenta de servicio
Habilita la entrega “exactamente una vez” enableExactlyOnceDelivery Entrega “exactamente una vez”

Suscripciones de BigQuery

Nombre name Lineamientos para asignar nombres a temas, suscripciones, esquemas o instantáneas
Tabla table Crea suscripciones de BigQuery
Usar el esquema de tema useTopicSchema Usa la suscripción a temas
Usar el esquema de tabla useTableSchema Usar el esquema de tabla
Escribir metadatos writeMetadata Escribir metadatos
Quitar campos desconocidos dropUnknownFields Quitar campos desconocidos
Segundos de plazo de confirmación ackDeadlineSeconds Plazo de confirmación
Retener mensajes confirmados retainAckedMessages Retener mensajes confirmados
Duración de la retención de mensajes messageRetentionDuration Duración de la retención de mensajes
Habilita el orden de los mensajes enableMessageOrdering Ordenamiento de mensajes
Política de vencimiento expirationPolicy Período de vencimiento
Filtro filter Filtro de suscripción
Tema de mensajes no entregados deadLetterTopic Tema de mensajes no entregados
Retirada máxima maximumBackoff Política de reintentos
Retirada mínima minimumBackoff Política de reintentos

Suscripciones de Cloud Storage

Nombre name Lineamientos para asignar nombres a temas, suscripciones, esquemas o instantáneas
Bucket bucket Nombre del bucket
Prefijo del nombre de archivo filenamePrefix Prefijo, sufijo y fecha y hora del nombre de archivo
Sufijo del nombre de archivo filenameSuffix Prefijo, sufijo y fecha y hora del nombre de archivo
Formato de fecha y hora del nombre de archivo filenameDatetimeFormat Prefijo, sufijo y fecha y hora del nombre de archivo
Duración máxima maxDuration Procesamiento de archivos por lotes
Bytes máximos maxBytes Procesamiento de archivos por lotes
Cantidad máxima de mensajes maxMessages Procesamiento de archivos por lotes
Formato de salida textConfig o avroConfig Formato del archivo
Escribir metadatos writeMetadata Escribir metadatos
Usar el esquema de tema useTopicSchema Usar el esquema de tema
Segundos de plazo de confirmación ackDeadlineSeconds Plazo de confirmación
Retener mensajes confirmados Retener mensajes confirmados
Duración de la retención de mensajes messageRetentionDuration Duración de la retención de mensajes
Habilita el orden de los mensajes enableMessageOrdering Ordenamiento de mensajes
Política de vencimiento expirationPolicy Período de vencimiento
Filtro filter Filtro de suscripción
Tema de mensajes no entregados deadLetterTopic Tema de mensajes no entregados
Retirada máxima maximumBackoff Política de reintentos
Retirada mínima minimumBackoff Política de reintentos

Etiquetas de suscripción

Clave labels Informes de uso con etiquetas
Valor labels Informes de uso con etiquetas
Duración de la retención de mensajes del tema topicMessageRetentionDuration Duración de la retención de mensajes
Nombre de la clave de KMS del tema kmsKeyName Usa una clave de encriptación administrada por el cliente (CMEK)
Otorga roles de proyecto de BigQuery De forma predeterminada, los roles Visualizador de metadatos de BigQuery y Editor de datos de BigQuery se otorgan a la cuenta de servicio predeterminada de Pub/Sub. Si no quieres otorgar estos roles, desmarca la casilla de verificación. Asigna roles de BigQuery a la cuenta de servicio de Pub/Sub
Otorga el rol de creador de tokens De forma predeterminada, el rol de creador de tokens de cuenta de servicio se otorga a la cuenta de servicio predeterminada de Pub/Sub. Si no quieres otorgar este rol, desmarca la casilla de verificación. Configura la autenticación para Pub/Sub

Esquema

Nombre name Información importante sobre los esquemas
Tipo type Tipos de esquemas
Definición definición Tipos de esquemas
Codificación codificación Lineamientos para asociar un esquema a un tema