Este documento descreve como criar uma assinatura por pull. É possível usar o Google Cloud console, a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub para criar uma assinatura por pull.
Antes de começar
- Saiba mais sobre assinaturas.
- Avalie se sua empresa precisa de uma assinatura por pull.
- Entenda como as assinaturas de pull funcionam.
Papéis e permissões necessárias
Para receber as permissões necessárias para criar uma assinatura de pull, peça ao administrador para conceder a você o papel do IAM de 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 uma assinatura por pull. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para criar uma assinatura por pull:
-
pubsub.subscriptions.createno projeto -
pubsub.topics.attachSubscriptionno tópico
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Assinaturas entre projetos
Se você criar uma assinatura em um projeto para um tópico em outro projeto, será necessário ter a permissão pubsub.subscriptions.create no projeto em que você está criando a assinatura e a permissão pubsub.topics.attachSubscription no tópico.
Criar uma assinatura por pull
Console
Para criar uma assinatura por pull, siga estas etapas:
No Google Cloud console, acesse a página Assinaturas.
Clique em Criar assinatura.
No campo ID da assinatura, insira um nome.
Para informações sobre como nomear uma assinatura, consulte Diretrizes para nomear um tópico ou uma assinatura.
Na lista Tópico do Pub/Sub, selecione um tópico para a assinatura ler.
Em Tipo de entrega, selecione Pull.
Opcional: na seção Transformações , adicione uma ou mais transformações de mensagem única (SMTs, na sigla em inglês). Para mais informações, consulte Criar uma assinatura com SMTs.
Opcional: no campo Filtro, insira uma expressão de filtro para filtrar mensagens da assinatura. Para mais informações, consulte Filtrar mensagens de uma assinatura.
Em Política de nova tentativa, selecione uma opção. Para mais informações, consulte Política de nova tentativa de assinatura.
Opcional: ative um tópico de mensagens inativas para receber mensagens não entregues.
Marque a caixa de seleção Mensagens mortas.
Na lista Tópico de mensagens mortas, selecione ou crie o tópico de mensagens mortas.
No campo Número máximo de tentativas de entrega, insira o número máximo de tentativas de entrega.
Opcional: na seção Propriedades de entrega, ative ou desative as seguintes opções de entrega:
Opcional: na seção Prazo de confirmação, defina o prazo para o assinante processar e confirmar as mensagens. Para mais informações, consulte Estender o tempo de confirmação com o gerenciamento de concessão.
Opcional: na seção Opções de vida útil, configure por quanto tempo a assinatura retém as mensagens.
Na seção Duração da retenção de mensagens, especifique por quanto tempo as mensagens não confirmadas são retidas.
Para reter mensagens confirmadas e não confirmadas, marque a caixa de seleção Retain acknowledged messages (Reter mensagens confirmadas).
Para mais informações, consulte Configurar a retenção de mensagens para uma assinatura.
Opcional: em Período de validade, selecione uma opção:
Para definir a expiração da assinatura, marque a caixa de seleção Expire after this many days of inactivity (Expirar após tantos dias de inatividade). Insira o número de dias que a assinatura pode permanecer inativa antes que o Pub/Sub a exclua.
Para desativar a expiração da assinatura, marque a caixa de seleção Never expire (Nunca expirar).
Para mais informações, consulte Expiração da assinatura.
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 Google Cloud console, 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.
Na página Adicionar assinatura ao tópico, conclua as etapas descritas no procedimento anterior. O ID do tópico é preenchido automaticamente.
gcloud
-
No Google Cloud console, ative o Cloud Shell.
Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI 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 por pull, execute o
gcloud pubsub subscriptions createcomando.gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Substitua:
SUBSCRIPTION_ID: o nome ou ID da nova assinatura por pull.TOPIC_ID: o nome ou ID do tópico.
REST
Para criar uma assinatura por pull, use o
projects.subscriptions.create método:
Solicitação:
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 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:
- PROJECT_ID é o ID do projeto.
- SUBSCRIPTION_ID é o ID da assinatura.
- TOPIC_ID é o ID do tópico.
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 tentar esse exemplo, siga as instruções de configuração do C++ em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
C#
Antes de tentar esse exemplo, siga as instruções de configuração do C# em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C# .
Go
O exemplo a seguir usa a versão principal da biblioteca de cliente do Go Pub/Sub (v2). Se você ainda estiver usando a biblioteca v1, consulte o guia de migração para a v2. Para conferir uma lista de exemplos de código v1, consulte os exemplos de código obsoletos.
Antes de tentar esse exemplo, siga as instruções de configuração do Go em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Go.
Java
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub para Java (em inglês).
Node.js
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub para Node.js (em inglês).
Node.ts
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub para Node.js (em inglês).
PHP
Antes de tentar esse exemplo, siga as instruções de configuração do PHP em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub PHP.
Python
Antes de tentar esse exemplo, siga as instruções de configuração do Python em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Pub/Sub.
Ruby
O exemplo a seguir usa a biblioteca de cliente do Ruby Pub/Sub v3. Se você ainda estiver usando a biblioteca v2, consulte o guia de migração para a v3. Para conferir uma lista de exemplos de código do Ruby v2, consulte os exemplos de código obsoletos.
Antes de tentar esse exemplo, siga as instruções de configuração do Ruby em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
Monitorar assinaturas por 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 suas descrições, consulte a documentação do Monitoring para o Pub/Sub.
Também é possível monitorar assinaturas no Pub/Sub.
A seguir
- Receber mensagens de uma assinatura por pull.
- Criar ou modificar uma assinatura com
gcloudcomandos. - Criar ou modificar uma assinatura com APIs REST.