Configurar um tópico e uma assinatura do Pub/Sub

Na Central de Design de Apps, é possível configurar um tópico e uma assinatura do Pub/Sub para fornecer mensagens assíncronas e escalonáveis que separam os serviços que produzem mensagens dos serviços que as processam. É possível personalizar as conexões de componentes e os parâmetros de configuração do tópico e da assinatura com base no módulo do Terraform terraform-google-pubsub.

Conexões de componentes

A tabela a seguir inclui os componentes que podem ser conectados a um tópico ou assinatura do Pub/Sub e as atualizações resultantes no aplicativo e no código do Terraform gerado.

Componente conectado

Atualizações de aplicativos

Informações prévias

Modelo de instância do Compute Engine

  • As instâncias do Compute Engine podem publicar e receber mensagens do tópico do Pub/Sub.
  • O ID do tópico do Pub/Sub é adicionado aos metadados do modelo de instância do Compute Engine.
Modelos de instância

Conta de serviço

  • A conta de serviço pode gerenciar tópicos do Pub/Sub e extrair mensagens de assinaturas.
  • O papel roles/pubsub.editor é adicionado à conta de serviço.
  • O nome e o e-mail da conta de serviço são adicionados à assinatura por pull do Pub/Sub.
Controle de acesso com o IAM

BigQuery

  • A assinatura do Pub/Sub pode gravar mensagens no conjunto de dados do BigQuery.
  • As informações do conjunto de dados do BigQuery são adicionadas aos campos da assinatura do BigQuery.
Assinaturas do BigQuery

Cloud Run

  • O serviço do Cloud Run pode receber mensagens ou publicar no tópico do Pub/Sub.
  • O ID do tópico do Pub/Sub é adicionado às variáveis de ambiente do Cloud Run.
  • Os papéis roles/pubsub.publisher e roles/pubsub.subscriber são adicionados à conta de serviço do Cloud Run.
  • O serviço do Cloud Run é adicionado aos campos de assinatura de push e assinatura por pull do Pub/Sub.
Tutorial Usar o Pub/Sub com o Cloud Run

Cloud Storage

  • A assinatura do Pub/Sub pode gravar mensagens no bucket do Cloud Storage.
  • As informações do bucket do Cloud Storage são adicionadas aos campos de assinatura do Pub/Sub.
Assinaturas do Cloud Storage

Parâmetros de configuração obrigatórios

Se o modelo incluir um componente do Pub/Sub, configure os seguintes parâmetros antes de implantar.

Nome do parâmetro

Descrição e restrições

Informações prévias

ID do projeto

O projeto em que você quer implantar o recurso do Pub/Sub.

Configurar componentes

Tópico

name Diretrizes para nomear um tópico, uma assinatura, um esquema ou um snapshot

Parâmetros de configuração opcionais

Os parâmetros a seguir são opcionais. Para exibir parâmetros avançados, na área Configuração, selecione Mostrar campos avançados.

Recurso

Nome do parâmetro

Informações de descrição e restrição

Informações prévias

Criar tópico Por padrão, um tópico é criado. Desmarque a caixa de seleção se não quiser criar um tópico. Crie um tópico
Criar assinaturas Por padrão, uma assinatura é criada. Desmarque a caixa de seleção se não quiser criar uma assinatura. Visão geral das assinaturas

Rótulos de tópicos

Key labels Como gerar relatórios de uso com rótulos.
Valor labels Como gerar relatórios de uso com rótulos.

Assinaturas por push

Nome name Diretrizes para nomear um tópico, uma assinatura, um esquema ou um snapshot
Segundos do prazo de confirmação ackDeadlineSeconds Prazo de confirmação
Endpoint de push pushEndpoint Endpoints
X-goog-version O formato da API Pub/Sub da mensagem enviada. Por exemplo, v1beta1. atributos
E-mail da conta de serviço do OIDC serviceAccountEmail Authentication
Público-alvo público-alvo Authentication
Política de validade expirationPolicy Período de validade
Tópico de mensagens inativas deadLetterTopic Tópico de mensagens inativas
Reter mensagens confirmadas retainAckedMessages Reter mensagens confirmadas
Duração da retenção de mensagens messageRetentionDuration Duração da retenção da mensagem
Máximo de tentativas de entrega maxDeliveryAttempts Tópico de mensagens inativas
Espera máxima maximumBackoff Política de nova tentativa
Espera mínima minimumBackoff Política de nova tentativa
Filtrar filter Filtro de assinatura
Ativar a ordenação de mensagens enableMessageOrdering Ordem das mensagens

Assinaturas por pull

Nome name Diretrizes para nomear um tópico, uma assinatura, um esquema ou um snapshot
Segundos do prazo de confirmação ackDeadlineSeconds Prazo de confirmação
Tópico de mensagens inativas deadLetterTopic Tópico de mensagens inativas
Máximo de tentativas de entrega maxDeliveryAttempts Tópico de mensagens inativas
Reter mensagens confirmadas retainAckedMessages Reter mensagens confirmadas
Duração da retenção de mensagens messageRetentionDuration Duração da retenção da mensagem
Espera máxima maximumBackoff Política de nova tentativa
Espera mínima minimumBackoff Política de nova tentativa
Filtrar filter Filtro de assinatura
Ativar a ordenação de mensagens enableMessageOrdering Ordem das mensagens
Conta de serviço
Ativar entrega exatamente uma vez enableExactlyOnceDelivery Entrega única

Assinaturas do BigQuery

Nome name Diretrizes para nomear um tópico, uma assinatura, um esquema ou um snapshot
Tabela table Criar assinaturas do BigQuery
Usar esquema de tópicos useTopicSchema Usar a assinatura de tópicos
Usar esquema de tabela useTableSchema Usar esquema de tabela
Gravar metadados writeMetadata Gravar metadados
Remover campos desconhecidos dropUnknownFields Remover campos desconhecidos
Segundos do prazo de confirmação ackDeadlineSeconds Prazo de confirmação
Reter mensagens confirmadas retainAckedMessages Reter mensagens confirmadas
Duração da retenção de mensagens messageRetentionDuration Duração da retenção da mensagem
Ativar a ordenação de mensagens enableMessageOrdering Ordem das mensagens
Política de validade expirationPolicy Período de validade
Filtrar filter Filtro de assinatura
Tópico de mensagens inativas deadLetterTopic Tópico de mensagens inativas
Espera máxima maximumBackoff Política de nova tentativa
Espera mínima minimumBackoff Política de nova tentativa

Assinaturas do Cloud Storage

Nome name Diretrizes para nomear um tópico, uma assinatura, um esquema ou um snapshot
Bucket bucket Nome do bucket
Prefixo do nome de arquivo filenamePrefix Prefixo, sufixo e data/hora do nome de arquivo
Sufixo do nome de arquivo filenameSuffix Prefixo, sufixo e data/hora do nome de arquivo
Formato de data e hora do nome de arquivo filenameDatetimeFormat Prefixo, sufixo e data/hora do nome de arquivo
Duração máxima maxDuration Lote de arquivos
Máximo de bytes maxBytes Lote de arquivos
Máximo de mensagens maxMessages Lote de arquivos
Formato de saída textConfig ou avroConfig Formato do arquivo
Gravar metadados writeMetadata Gravar metadados
Usar esquema de tópicos useTopicSchema Usar esquema de tópicos
Segundos do prazo de confirmação ackDeadlineSeconds Prazo de confirmação
Reter mensagens confirmadas Reter mensagens confirmadas
Duração da retenção de mensagens messageRetentionDuration Duração da retenção da mensagem
Ativar a ordenação de mensagens enableMessageOrdering Ordem das mensagens
Política de validade expirationPolicy Período de validade
Filtrar filter Filtro de assinatura
Tópico de mensagens inativas deadLetterTopic Tópico de mensagens inativas
Espera máxima maximumBackoff Política de nova tentativa
Espera mínima minimumBackoff Política de nova tentativa

Rótulos de assinatura

Key labels Como gerar relatórios de uso com rótulos.
Valor labels Como gerar relatórios de uso com rótulos.
Duração da retenção da mensagem de tópico topicMessageRetentionDuration Duração da retenção da mensagem
Nome da chave do KMS do tópico kmsKeyName Usar uma chave de criptografia gerenciada pelo cliente (CMEK)
Conceder papéis do projeto do BigQuery Por padrão, os papéis Leitor de metadados do BigQuery e Editor de dados do BigQuery são concedidos à conta de serviço padrão do Pub/Sub. Se você não quiser conceder esses papéis, desmarque a caixa de seleção. Atribuir papéis do BigQuery à conta de serviço do Pub/Sub
Conceder o papel de criador de token Por padrão, o papel Criador de token da conta de serviço é concedido à conta de serviço padrão do Pub/Sub. Se você não quiser conceder esse papel, desmarque a caixa de seleção. Configurar a autenticação do Pub/Sub

Esquema

Nome name Informações importantes sobre esquemas
Tipo type Tipos de esquemas
Definição definição Tipos de esquemas
Codificação codificação Diretrizes para associar um esquema a um tópico