No Pub/Sub, um tópico é um recurso nomeado que representa um feed de mensagens. É necessário criar um tópico antes de publicar ou assinar a ele. O Pub/Sub oferece suporte a dois tipos de tópicos: um tópico padrão e um tópico de importação.
Neste documento, descrevemos como criar um tópico padrão do Pub/Sub. Se se quiser saber mais sobre um tópico de importação e como criá-lo, consulte Crie um tópico de importação.
Para criar um tópico, use o console do Google Cloud, a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub.
Antes de começar
Saiba mais sobre o serviço Pub/Sub e a terminologia dele.
Saiba mais sobre o processo de publicação.
Permissões e papéis necessários para gerenciar tópicos
Para ter as permissões necessárias para criar e gerenciar tópicos,
peça ao administrador para conceder a você
Editor do Pub/Sub(roles/pubsub.editor
)
papel do IAM no tópico ou projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido contém as permissões necessárias para criar e gerenciar tópicos. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para criar e gerenciar tópicos:
-
Crie um tópico:
pubsub.topics.create
-
Exclua um tópico:
pubsub.topics.delete
-
Remover uma assinatura de um tópico:
pubsub.topics.detachSubscription
-
Acessar um tema:
pubsub.topics.get
-
Liste um tópico:
pubsub.topics.list
-
Para publicar em um tópico, siga estas etapas:
pubsub.topics.publish
-
Atualizar um tema:
pubsub.topics.update
-
Receba a política do IAM para um tópico:
pubsub.topics.getIamPolicy
-
Configure a política do IAM para um tópico:
pubsub.topics.setIamPolicy
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
É possível configurar o controle de acesso para envolvidos no projeto no nível do recurso. Você pode criar uma assinatura em um projeto e anexar a um tópico localizado em um projeto diferente. Verifique se você tem as permissões necessárias para para cada projeto.
Propriedades de um tópico
Ao criar ou atualizar um tópico, especifique as propriedades dele.
-
Adicione uma assinatura padrão. Adiciona uma assinatura padrão ao tópico do Pub/Sub. Você pode criar outra assinatura para o tópico após a criação dele. A assinatura padrão tem propriedades a seguir:
- ID da assinatura de
-sub
- Tipo de entrega pull
- Duração de sete dias de retenção da mensagem
- Expira após 31 dias de inatividade
- Prazo de confirmação de 10 segundos
- Política de repetição imediata
- ID da assinatura de
- Esquema. Um esquema é um formato em que o campo de dados da mensagem precisa seguir. Um esquema é um contrato entre o editor e o assinante que o Pub/Sub aplica. Os esquemas de tópicos ajudam a padronizar e permissões para que elas sejam consumidas por diferentes equipes na sua organização. O Pub/Sub cria uma rede autoridade em tipos de mensagens e permissões. Para criar um tópico com consulte a Visão geral do esquema.
-
Ative a ingestão. Ao ativar essa propriedade, você ingerir dados de streaming de fontes externas em um tópico para aproveitar os recursos do Google Cloud. Para criar um tópico de importação para ingestão, consulte Criar um tópico de importação.
-
Duração da retenção de mensagens. Especifica por quanto tempo o O tópico do Pub/Sub retém mensagens após a publicação. Após o a duração da retenção da mensagem tenha terminado, o Pub/Sub pode descartar a mensagem, independentemente do estado de confirmação. Taxas de armazenamento de mensagens são cobradas pelo armazenamento de todas as mensagens publicadas no tópico.
- Padrão = não ativado
- Valor mínimo = 10 minutos
- Valor máximo = 31 dias
- Use uma chave de criptografia gerenciada pelo cliente (CMEK). Especifica se o tópico é criptografado com uma CMEK. O Pub/Sub criptografa as mensagens com chaves de propriedade e gerenciadas pelo Google por padrão. Se você especificar essa opção, O Pub/Sub usa o padrão de criptografia de envelope com CMEK. Em essa abordagem, o Cloud KMS não criptografa as mensagens. Em vez disso, o Cloud KMS criptografa as chaves de criptografia de dados (DEKs) criadas pelo Pub/Sub para cada tópico. O Pub/Sub criptografa as mensagens usando a a DEK que foi gerada para o tópico. O Pub/Sub descriptografa mensagens pouco antes de serem entregues aos assinantes. Para mais informações sobre como criar uma chave, consulte Configurar a criptografia de mensagens.
Criar um tópico
Crie um tópico antes de publicar ou se inscrever nele.
Console
Para criar um tópico, siga estas etapas:
No Console do Google Cloud, acesse a página Tópicos do Pub/Sub.
Selecione Criar tópico.
No campo Código do tópico, insira um código para o tópico. Para mais informações sobre como nomear tópicos, consulte as diretrizes de nomenclatura.
Mantenha a opção Adicionar uma assinatura padrão.
Não selecione as outras opções.
Selecione Criar tópico.
gcloud
-
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Para criar um tópico, execute o Comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
REST
Para criar um tópico, use o
projects.topics.create
:
A solicitação precisa ser autenticada com um token de acesso no cabeçalho Authorization
. Para conseguir um token de acesso para o Application Default Credentials: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Em que:
Resposta:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Antes de testar este exemplo, siga as instruções de configuração do C++ na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API C++ do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Antes de testar este exemplo, siga as instruções de configuração do C# na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API C# do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API Go do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API Java do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Node.js
PHP
Antes de testar este exemplo, siga as instruções de configuração do PHP na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API PHP do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API Python do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de testar este exemplo, siga as instruções de configuração do Ruby na Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a API Ruby do Pub/Sub documentação de referência.
Para autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Restrições da política 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 em um Compute Engine região. Para evitar erros na criação de tópicos, examine e atualize políticas organizacionais, conforme necessário, antes de criar um tópico.
Se o projeto tiver sido criado recentemente, aguarde alguns minutos a política da organização a ser inicializada antes de criar um tópico.
Acesse as políticas da organização
Para mais informações, consulte Configurar políticas de armazenamento de mensagens.
A seguir
Escolha o tipo de assinatura do tópico.
Saiba como publicar uma mensagem em um tópico.
Criar ou modificar um tópico com a gcloud CLI APIs REST ou bibliotecas de cliente.