Ao criar uma assinatura, ela é anexada 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 remover uma assinatura, você precisa da
permissão pubsub.topics.detachSubscription
no tópico. É possível remover uma
assinatura sem permissões na assinatura, o que é útil para gerenciar
um tópico que esteja em um projeto diferente da assinatura. Para
mais informações, consulte
Controle de acesso do Pub/Sub.
Antes de começar
- Saiba mais sobre assinaturas.
- Crie uma das assinaturas a seguir: pull, push ou BigQuery.
Papéis e permissões necessárias
Para receber as permissões necessárias para separar assinaturas e gerenciá-las,
peça ao administrador que conceda a você o
papel do IAM de Editor do Pub/Sub (roles/pubsub.editor
) no seu tópico ou projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido contém as permissões necessárias para remover assinaturas e gerenciá-las. 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 remover assinaturas e gerenciá-las:
-
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.
É possível configurar o controle de acesso no nível do projeto e no nível de 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 separar uma assinatura de um tópico usando o console do 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 tópico do qual você quer separar uma assinatura.
Na guia Assinaturas, selecione a assinatura que será removida.
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 separar 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 separar 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 receber um token de acesso para o
Application Default Credentials atual, 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:
Resposta:
Se a solicitação for bem-sucedida, a resposta será um objeto JSON vazio.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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 projeto do Google Cloud, exclua a assinatura.
Se a assinatura e o tópico estiverem em projetos diferentes do Google Cloud, o serviço Pub/Sub adicionará uma entrada aos registros de auditoria dos dois projetos.
A seguir
- Crie ou modifique uma assinatura com comandos do
gcloud
. - Crie ou modifique uma assinatura com APIs REST.