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, é possível remover 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 seguintes assinaturas: pull, push ou BigQuery.
Papéis e permissões necessárias
Para receber as permissões necessárias para desconectar e gerenciar assinaturas,
peça ao administrador para conceder 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 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 desvincular e gerenciar assinaturas. 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 desvincular e gerenciar assinaturas:
-
Extrair de uma assinatura:
pubsub.subscriptions.consume
-
Criar uma assinatura:
pubsub.subscriptions.create
-
Excluir uma assinatura:
pubsub.subscriptions.delete
-
Receber uma assinatura:
pubsub.subscriptions.get
-
Listar uma assinatura:
pubsub.subscriptions.list
-
Atualizar uma assinatura:
pubsub.subscriptions.update
-
Anexe uma assinatura a um tópico:
pubsub.topics.attachSubscription
-
Acesse a política do IAM para 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.
É possível configurar o controle de acesso no nível do projeto e 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 remover a assinatura de um tópico usando o console do Google Cloud, a CLI do Google Cloud, 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 de que você quer remover uma assinatura.
Na guia Assinaturas, selecione a assinatura que você quer remover.
Na página Detalhes da assinatura, clique em Remover.
Na caixa de diálogo exibida, clique em Remover novamente.
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 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 remover 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 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 do C++ no Guia de início rápido do Pub/Sub: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Para 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 do C# no Guia de início rápido do Pub/Sub: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C#.
Para 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 do Go no Guia de início rápido do Pub/Sub: como usar 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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Pub/Sub: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
Para 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 do PHP no Guia de início rápido do Pub/Sub: como usar 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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Pub/Sub: como usar 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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de testar esta amostra, siga as instruções de configuração do Ruby no Guia de início rápido do Pub/Sub: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
Para 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 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.