Neste documento, descrevemos como criar uma assinatura de pull. É possível usar o console do Google Cloud, a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub para criar uma assinatura de pull.
Antes de começar
- Saiba mais sobre assinaturas.
- Avalie se sua empresa exige uma assinatura de pull.
- Entenda como funcionam as assinaturas de pull.
Papéis e permissões necessárias
Para criar uma assinatura, configure o controle de acesso no nível do projeto. Você também precisa de permissões no nível do recurso se as assinaturas e os tópicos estiverem em projetos diferentes, conforme discutido mais adiante nesta seção.
Para receber as permissões necessárias para criar assinaturas de pull,
peça ao administrador para conceder a você o
Editor do Pub/Sub (roles/pubsub.editor
) do IAM no 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 assinaturas de pull. 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 assinaturas de pull:
-
Extrair de uma assinatura:
pubsub.subscriptions.consume
-
Criar uma assinatura:
pubsub.subscriptions.create
-
Excluir uma assinatura:
pubsub.subscriptions.delete
-
Fazer uma assinatura:
pubsub.subscriptions.get
-
Listar uma assinatura:
pubsub.subscriptions.list
-
Atualizar uma assinatura:
pubsub.subscriptions.update
-
Anexar uma assinatura a um tópico:
pubsub.topics.attachSubscription
-
Consiga a política do IAM para uma assinatura:
pubsub.subscriptions.getIamPolicy
-
Configure a política do IAM para uma assinatura:
pubsub.subscriptions.setIamPolicy
Talvez você também consiga receber essas permissões com papéis personalizados ou outros papéis predefinidos.
Se você precisar criar assinaturas de pull em um projeto que estejam associadas a um tópico em outro projeto, peça ao administrador do tópico para conceder a você também o papel do IAM (roles/pubsub.editor)
de Editor do Pub/Sub.
Propriedades da assinatura de pull
Ao configurar uma assinatura de pull, é possível especificar as propriedades a seguir.
Propriedades comuns
Saiba mais sobre as propriedades de assinatura comuns que podem ser definidas em todas as assinaturas.
Entrega exatamente uma vez
Entrega única. Se definido, o Pub/Sub atende a garantias de entrega exatamente uma. Se não for especificada, a assinatura permitirá a entrega pelo menos uma vez para cada mensagem.
Criar uma assinatura de pull
Os exemplos a seguir demonstram como criar uma assinatura com entrega por pull usando as configurações padrão fornecidas.
Console
Para criar uma assinatura de pull, conclua as etapas a seguir.
No Console do Google Cloud, acesse a página Assinaturas.
- Clique em Criar assinatura.
No campo ID da assinatura, digite um nome.
Para saber como nomear uma assinatura, consulte Diretrizes para nomear um tópico ou uma assinatura.
- Escolha ou crie um tópico no menu suspenso. A assinatura recebe mensagens do tópico.
- Mantenha o Tipo de entrega como Pull.
- Mantenha todos os outros valores padrão.
- Clique em Criar.
Você também pode criar uma assinatura na seção Tópicos. Esse atalho é útil para associar tópicos a assinaturas.
No console do Google Cloud, acesse a página Tópicos.
- Clique em more_vert ao lado do tópico em que você quer criar uma assinatura.
- No menu de contexto, selecione Criar assinatura.
Insira o ID da assinatura.
Para saber como nomear uma assinatura, consulte Diretrizes para nomear um tópico ou uma assinatura.
- Mantenha o Tipo de entrega como Pull.
- Mantenha todos os outros valores padrão.
- Clique em Criar.
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 uma assinatura de pull, execute o
comando
gcloud pubsub subscriptions create
.gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Substitua:
SUBSCRIPTION_ID
: o nome ou ID da nova assinatura de pull.TOPIC_ID
: o nome ou ID do tópico.
REST
Para criar uma assinatura de pull, use o método
projects.subscriptions.create
:
Solicitação:
A solicitação precisa ser autenticada com um token de acesso no cabeçalho Authorization
. Para receber 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/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
Corpo da solicitação:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
Em que:
Resposta:
{ "name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": {}, "ackDeadlineSeconds": 10, "messageRetentionDuration": "604800s", "expirationPolicy": { "ttl": "2678400s" } }
C++
Antes de testar esta amostra, siga as instruções de configuração de C++ no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
C#
Antes de testar esta amostra, siga as instruções de configuração de C# no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C#.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Go
Antes de testar esta amostra, siga as instruções de configuração de Go no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Go.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Antes de testar esta amostra, siga as instruções de configuração de Java no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Node.js
PHP
Antes de testar esta amostra, siga as instruções de configuração de PHP no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub PHP.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Antes de testar esta amostra, siga as instruções de configuração de Python no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Python.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Ruby
Antes de testar esta amostra, siga as instruções de configuração de Ruby no Guia de início rápido do Pub/Sub usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
Para se autenticar no Pub/Sub, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
A seguir
- Crie ou modifique uma assinatura com comandos do
gcloud
. - Crie ou modifique uma assinatura com APIs REST.