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
desvincular 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 separar 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
-
Crie 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
-
Anexe uma assinatura a um tópico:
pubsub.topics.attachSubscription
-
Acessar a política do IAM de 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 no nível do recurso individual. É possível criar uma assinatura em um projeto e anexá-la a um tópico localizado em um projeto diferente. 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 Trusted Cloud , a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub.
Console
Para remover uma assinatura, siga estas etapas:
No console Trusted Cloud , acesse a página Tópicos.
Selecione o tópico de que você quer desvincular 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 Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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].
- PROJECT_ID é o ID do projeto;
- SUBSCRIPTION_ID é o ID da sua assinatura.
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, 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 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 da v1, consulte os exemplos de código descontinuados.
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 Java.
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 Node.js.
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 Node.js.
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 Pub/Sub Python.
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 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.
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 sua cota de projeto do Trusted Cloud , exclua a assinatura.
Se a assinatura e o tópico estiverem em projetos diferentes do Trusted 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
gcloud
. - Crie ou modifique uma assinatura com APIs REST.