Neste documento, descrevemos como criar uma assinatura de pull. É possível usar o console do Google Cloud, a CLI do Google Cloud, 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 seu negócio exige uma assinatura pull.
- Entenda como as assinaturas de pull funcionam.
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 suas assinaturas e tópicos estão em projetos diferentes, conforme discutido mais adiante nesta seção.
Para ter as permissões necessárias para criar assinaturas de pull,
peça ao administrador para conceder a você
Papel do IAM Editor do Pub/Sub (roles/pubsub.editor
) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
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
-
Crie uma assinatura:
pubsub.subscriptions.create
-
Para excluir uma assinatura:
pubsub.subscriptions.delete
-
Receber uma assinatura:
pubsub.subscriptions.get
-
Para listar uma assinatura:
pubsub.subscriptions.list
-
Atualizar uma assinatura:
pubsub.subscriptions.update
-
Anexe uma assinatura a um tópico:
pubsub.topics.attachSubscription
-
Para receber a política do IAM de uma assinatura:
pubsub.subscriptions.getIamPolicy
-
Configure a política do IAM para uma assinatura:
pubsub.subscriptions.setIamPolicy
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Se você precisar criar
assinaturas de um projeto que estão associadas a um tópico em outro
projeto, peça ao administrador do tópico para conceder a você o papel Editor do Pub/Sub
(roles/pubsub.editor)
no tópico.
Propriedades da assinatura de pull
Ao configurar uma assinatura de pull, é possível especificar o seguinte propriedades.
Propriedades comuns
Saiba mais sobre as propriedades comuns de assinaturas que você pode definir em todas as assinaturas.
Entrega "exatamente uma vez"
Entrega exatamente uma vez. Se definido, o Pub/Sub cumpre as garantias de envio exatamente uma vez. Se não for especificada, a assinatura terá suporte entrega pelo menos uma vez para cada mensagem.
Criar uma assinatura por pull
Os exemplos a seguir demonstram como criar uma assinatura com 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.
Insira um nome no campo ID da assinatura.
Para informações sobre 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 Delivery type 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 para 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 Delivery type como Pull.
- Mantenha todos os outros valores padrão.
- Clique em Criar.
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 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 o ID do novo pull assinatura.TOPIC_ID
: o nome ou o ID do tópico.
REST
Para criar uma assinatura de pull, use o
projects.subscriptions.create
:
Solicitação:
A solicitação deve ser autenticada com um token de acesso no
Cabeçalho Authorization
. Para conseguir um
token de acesso para o Application Default Credentials atual:
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 do C++ no Guia de início rápido do Pub/Sub: como usar 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, acesse Configurar a autenticação para bibliotecas de cliente.
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, acesse Configurar a autenticação para bibliotecas de cliente.
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 documentação de referência da API Pub/Sub Go.
Para 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 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, acesse Configurar a autenticação para bibliotecas de cliente.
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 documentação de referência da API Pub/Sub PHP.
Para 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 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 documentação de referência da API Pub/Sub Python.
Para 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 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, acesse Configurar a autenticação para bibliotecas de cliente.
Monitorar assinaturas de pull
O Cloud Monitoring fornece várias métricas para monitorar assinaturas.
Para uma lista de todas as métricas disponíveis relacionadas ao Pub/Sub e as descrições deles, consulte Documentação de monitoramento do Pub/Sub.
Também é possível monitorar as assinaturas no Pub/Sub.
A seguir
- Crie ou modifique uma assinatura com comandos
gcloud
. - Crie ou modifique uma assinatura com APIs REST.