Ao criar uma assinatura, você a anexa a um tópico, e os assinantes podem receber mensagens dela. Para impedir que os assinantes recebam mensagens, remova as assinaturas do tópico.
Antes de começar
- Saiba mais sobre assinaturas.
- Crie uma das seguintes assinaturas: pull, push ou BigQuery.
Papéis e permissões necessárias
Para receber a permissão
necessária para desvincular assinaturas,
peça ao administrador para conceder a você o papel do IAM
Editor do Pub/Sub (roles/pubsub.editor) no tópico.
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 a
permissão
pubsub.topics.detachSubscription,
que é necessária para
desvincular assinaturas.
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
É possível configurar o controle de acesso no nível do projeto e no nível do recurso individual. É possível criar uma assinatura em um projeto e anexá-la a um tópico localizado em outro projeto. Verifique se você tem as permissões necessárias para cada projeto.
Remover uma assinatura de um tópico
É possível desvincular uma assinatura de um tópico usando o console Google Cloud , a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub.
Console
Para remover uma assinatura, siga estas etapas:
No console do Google Cloud , acesse a página Tópicos.
Selecione o tema de que você quer desvincular uma assinatura.
Na guia Assinaturas, selecione a assinatura que você quer desvincular.
Na página Detalhes da assinatura, clique em Remover.
Na caixa de diálogo exibida, clique em Remover novamente.
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 remover uma assinatura, use o comando
gcloud pubsub topics detach-subscription:gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
Se a solicitação for bem-sucedida, a linha de comando exibirá uma confirmação:
Detached subscription [SUBSCRIPTION_ID].
REST
Para desvincular uma assinatura, use o método projects.subscriptions.detach.
Solicitação:
A solicitação precisa ser autenticada com um token de acesso no cabeçalho Authorization. Para conseguir um token de acesso para as Application Default Credentials atuais, use o comando
gcloud auth application-default print-access-token.
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:detach Authorization: Bearer ACCESS_TOKEN
Em que:
- PROJECT_ID é o ID do projeto;
- SUBSCRIPTION_ID é o ID da sua assinatura.
Resposta:
Se a solicitação for bem-sucedida, a resposta será um objeto JSON vazio.
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 este 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 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 Pub/Sub para Python.
Ruby
O exemplo a seguir usa a v3 da biblioteca de cliente do Pub/Sub para Ruby. 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.
O serviço Pub/Sub pode levar vários minutos para concluir a remoção da assinatura do tópico.
Depois que o serviço do Pub/Sub remove a assinatura do tópico, o serviço do Pub/Sub exclui todas as mensagens retidas para a assinatura. Não é possível recuperar essas mensagens da assinatura nem reconectá-la a um tópico. Para liberar a cota do seu projeto Google Cloud , exclua a assinatura.
Se a assinatura e o tópico estiverem em projetos Google Cloud diferentes, o serviço do Pub/Sub vai adicionar uma entrada aos registros de auditoria dos dois projetos.
A seguir
- Crie ou modifique uma assinatura com comandos
gcloud. - Crie ou modifique uma assinatura com APIs REST.