Neste documento, descrevemos 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 funcionam as assinaturas pull.
Papéis e permissões necessárias
Para receber as permissões necessárias
para criar uma assinatura de extração,
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 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 assunto
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Assinaturas entre projetos
Se você criar uma assinatura em um projeto para um tópico em outro, será necessário ter a permissão pubsub.subscriptions.create no projeto em que a assinatura está sendo criada 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 console do Google Cloud , acesse a página Assinaturas.
Acesse 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 envio, 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 novas tentativas, selecione uma opção. Para mais informações, consulte Política de novas tentativas de assinatura.
Opcional: ative um tópico de mensagens inativas para receber mensagens não entregues.
Marque a caixa de seleção Mensagem morta.
Na lista Tópico de dead-letter, selecione ou crie o tópico de dead-letter.
No campo Tentativas de entrega máximas, insira o número máximo de tentativas de entrega.
Opcional: na seção Propriedades de exibição, ative ou desative as seguintes opções de exibição:
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ões.
Opcional: na seção Opções de ciclo de vida, configure por quanto tempo a assinatura vai reter mensagens.
Na seção Período de retenção de mensagens, especifique por quanto tempo as mensagens não confirmadas serão retidas.
Para reter mensagens confirmadas e não confirmadas, marque a caixa de seleção 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 Expirar após este número de dias de inatividade. Insira o número de dias que a assinatura pode ficar inativa antes de o Pub/Sub excluí-la.
Para desativar a expiração da assinatura, marque a caixa de seleção 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 console do Google Cloud , acesse a página Tópicos.
Clique em more_vert ao lado do tema 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 console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console 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 por 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 sua nova assinatura de extração.TOPIC_ID: o nome ou ID do tópico.
REST
Para criar uma assinatura por 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 as Application Default Credentials atuais:
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 sua 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 para 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 para C#.
Go
O exemplo a seguir usa a versão principal da biblioteca de cliente do Pub/Sub para Go (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 da v1, consulte os exemplos de código descontinuados.
Antes de testar esta amostra, siga as instruções de configuração do Go no 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 para 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 descontinuados.
Antes de testar esta amostra, siga as instruções de configuração do Ruby no 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.
Rust
Antes de testar esta amostra, siga as instruções de configuração do Rust 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 Rust.
Monitorar assinaturas de pull
O Cloud Monitoring oferece várias métricas para monitorar assinaturas.
Para conferir 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.
- Crie ou modifique uma assinatura com comandos
gcloud. - Crie ou modifique uma assinatura com APIs REST.