No Pub/Sub, um tópico é um recurso com nome que representa um feed de mensagens. Tem de criar um tópico antes de poder publicar ou subscrever o mesmo. O Pub/Sub suporta dois tipos de tópicos: um tópico padrão e um tópico de importação.
Este documento descreve como criar um tópico padrão do Pub/Sub. Se quiser saber mais sobre um tópico de importação e como criar um, consulte o artigo Acerca dos tópicos de importação.
Para criar um tópico, pode usar a Google Cloud consola, a Google Cloud CLI, a biblioteca cliente ou a API Pub/Sub.
Antes de começar
Saiba mais sobre o serviço Pub/Sub e a respetiva terminologia.
Saiba mais acerca do processo de publicação.
Funções e autorizações necessárias
Para receber as autorizações de que
precisa para criar um tópico,
peça ao seu administrador para lhe conceder a
função IAM de editor do Pub/Sub(roles/pubsub.editor
) no seu projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para criar um tópico. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para criar um tópico:
-
Conceda esta autorização para criar um tópico no projeto:
pubsub.topics.create
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Pode configurar o controlo de acesso ao nível do projeto e ao nível do recurso individual. Pode criar uma subscrição num projeto e anexá-la a um tópico localizado num projeto diferente. Certifique-se de que tem as autorizações necessárias para cada projeto.
Propriedades de um tópico
Quando cria ou atualiza um tópico, tem de especificar as respetivas propriedades.
Adicione uma subscrição predefinida
Adiciona uma subscrição predefinida ao tópico Pub/Sub. Pode criar outra subscrição para o tópico depois de o criar. A subscrição predefinida tem as seguintes propriedades:
- ID da subscrição de
-sub
- Tipo de fornecimento de extração
- Duração da retenção de mensagens de sete dias
- Expiração após 31 dias de inatividade
- Prazo de confirmação de 10 segundos
- Política de repetição imediata
Use um esquema
Um esquema é um formato que o campo de dados da mensagem tem de seguir. Um esquema é um contrato entre o publicador e o subscritor que o Pub/Sub aplica. Os esquemas de tópicos ajudam a padronizar os tipos de mensagens e as autorizações para permitir que sejam consumidos por diferentes equipas na sua organização. O Pub/Sub cria uma autoridade central para tipos de mensagens e autorizações. Para criar um tópico com esquema, consulte a Vista geral do esquema.
Ative o carregamento
A ativação desta propriedade permite-lhe carregar dados de streaming de origens externas para um tópico, para que possa usar as funcionalidades do Google Cloud. Para criar um tópico de importação para carregamento, consulte o seguinte:
Ative a retenção de mensagens
Especifica durante quanto tempo o tópico Pub/Sub retém as mensagens após a publicação. Após o período de retenção de mensagens, o Pub/Sub pode rejeitar a mensagem, independentemente do respetivo estado de confirmação. As taxas de armazenamento de mensagens são cobradas pelo armazenamento de todas as mensagens publicadas no tópico
- Predefinição = Não ativado
- Valor mínimo = 10 minutos
- Valor máximo = 31 dias
Exporte dados de mensagens para o BigQuery
A ativação desta propriedade permite-lhe criar uma subscrição do BigQuery que escreve mensagens numa tabela do BigQuery existente à medida que são recebidas. Não precisa de configurar um cliente subscritor separado. Para mais informações acerca das subscrições do BigQuery, consulte o artigo Subscrições do BigQuery.
Faça uma cópia de segurança dos dados das mensagens no Cloud Storage
A ativação desta propriedade permite-lhe criar uma subscrição do Cloud Storage que escreve mensagens numa tabela do Cloud Storage existente à medida que são recebidas. Não precisa de configurar um cliente subscritor separado. Para mais informações sobre as subscrições do Cloud Storage, consulte o artigo Subscrições do Cloud Storage.
Transformações
As SMTs de tópicos permitem modificações simples aos dados e atributos das mensagens diretamente no Pub/Sub. Esta funcionalidade permite a limpeza, a filtragem ou a conversão de formato de dados antes de as mensagens serem publicadas no tópico.
Para mais informações sobre os SMTs, consulte a vista geral dos SMTs.
Google-owned and Google-managed encryption key
Especifica que o tópico está encriptado através de Google-owned and Google-managed encryption keys. O Pub/Sub encripta as mensagens com o algoritmo AES-256 por predefinição, pelo que a escolha desta opção mantém o comportamento predefinido. Google-owned and Google-managed encryption keys A Google processa a gestão e a rotação de chaves automaticamente, garantindo que as suas mensagens estão sempre protegidas com a encriptação mais forte disponível. Esta opção não requer mais nenhuma configuração. Para mais informações sobre a Google-owned and Google-managed encryption keys, consulte o artigo Encriptação predefinida com o Google-owned and Google-managed encryption keys.
Chave do Cloud KMS
Especifica se o tópico está encriptado com uma chave de encriptação gerida pelo cliente (CMEK). Por predefinição, o Pub/Sub encripta as mensagens com o Google-owned and Google-managed encryption keys . Se especificar esta opção, o Pub/Sub usa o padrão de encriptação de envelope com a CMEK. Nesta abordagem, o Cloud KMS não encripta as mensagens. Em alternativa, o Cloud KMS encripta as chaves de encriptação de dados (DEKs) que o Pub/Sub cria para cada tópico. O Pub/Sub encripta as mensagens através da DEK mais recente gerada para o tópico. O Pub/Sub desencripta as mensagens pouco antes de serem entregues aos subscritores. Para mais informações sobre como criar uma chave, consulte o artigo Configure a encriptação de mensagens.
Crie um tópico
Crie um tópico antes de o poder publicar ou subscrever.
Consola
Para criar um tópico, siga estes passos:
Na Google Cloud consola, aceda à página Criar tópico do Pub/Sub.
No campo ID do tópico, introduza um ID para o seu tópico. Para mais informações sobre a atribuição de nomes a tópicos, consulte as diretrizes de nomenclatura.
Mantenha a opção Adicionar uma subscrição predefinida.
Opcional. Não selecione as outras opções.
Clique em Criar tópico.
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 criar um tópico, execute o comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
- PROJECT_ID é o ID do seu projeto.
- TOPIC_ID é o ID do seu tópico.
REST
Para criar um tópico, use o método
projects.topics.create
:
O pedido tem de ser autenticado com um token de acesso no cabeçalho Authorization
. Para obter uma chave de acesso para as
Credenciais padrão da aplicação atuais: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Onde:
Resposta:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Antes de experimentar este exemplo, siga as instruções de configuração do C++ no artigo Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C++ do Pub/Sub.
C#
Antes de experimentar este exemplo, siga as instruções de configuração do C# em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C# do Pub/Sub.
Ir
O exemplo seguinte usa a versão principal da biblioteca de cliente Go Pub/Sub (v2). Se ainda estiver a usar a biblioteca v1, consulte o guia de migração para a v2. Para ver uma lista de exemplos de código da v1, consulte os exemplos de código descontinuados.
Antes de experimentar este exemplo, siga as instruções de configuração do Go em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Pub/Sub.
Java
Antes de experimentar este exemplo, siga as instruções de configuração do Java no artigo Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Java do Pub/Sub.
Node.js
Antes de experimentar este exemplo, siga as instruções de configuração do Node.js em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js do Pub/Sub.
Node.ts
Antes de experimentar este exemplo, siga as instruções de configuração do Node.js em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js do Pub/Sub.
PHP
Antes de experimentar este exemplo, siga as instruções de configuração do PHP no artigo Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API PHP Pub/Sub.
Python
Antes de experimentar este exemplo, siga as instruções de configuração do Python em Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Python Pub/Sub.
Ruby
O exemplo seguinte usa a biblioteca cliente Ruby Pub/Sub v3. Se ainda estiver a usar a biblioteca v2, consulte o guia de migração para a v3. Para ver uma lista de exemplos de código do Ruby v2, consulte os exemplos de código descontinuados.
Antes de experimentar este exemplo, siga as instruções de configuração do Ruby em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Ruby Pub/Sub.
Restrições de políticas da organização
As políticas organizacionais podem restringir a criação de tópicos. Por exemplo, uma política pode restringir o armazenamento de mensagens numa região do Compute Engine. Para evitar erros de criação de tópicos, examine e atualize as políticas organizacionais, conforme necessário, antes de criar um tópico.
Se o seu projeto foi criado recentemente, aguarde alguns minutos para que a política da organização seja inicializada antes de criar um tópico.
Aceda às políticas da organização
Para mais informações, consulte o artigo Configure políticas de armazenamento de mensagens.
O que se segue?
Escolha o tipo de subscrição para o seu tópico.
Saiba como publicar uma mensagem num tópico.
Resolva problemas relacionados com um tópico.
Crie ou modifique um tópico com a CLI gcloud, as APIs REST ou as bibliotecas cliente.