Quando cria uma subscrição, associa-a a um tópico e os subscritores podem receber mensagens da subscrição. Para impedir que os subscritores recebam mensagens, pode desassociar as subscrições do tópico.
Antes de desassociar uma subscrição, precisa da autorização pubsub.topics.detachSubscription
no tópico. Pode desassociar uma subscrição sem autorizações na subscrição, o que é útil para gerir um tópico que está num projeto diferente do da subscrição. Para mais informações, consulte o artigo Controlo de acesso do Pub/Sub.
Antes de começar
- Saiba mais acerca das subscrições.
- Crie uma das seguintes subscrições: pull, push ou BigQuery.
Funções e autorizações necessárias
Para receber as autorizações de que
precisa para desanexar subscrições e geri-las,
peça ao seu administrador que lhe conceda a
função IAM Editor do Pub/Sub (roles/pubsub.editor
)
no seu tópico ou projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para desanexar subscrições e geri-las. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para desassociar subscrições e geri-las:
-
Extrair de uma subscrição:
pubsub.subscriptions.consume
-
Crie uma subscrição:
pubsub.subscriptions.create
-
Elimine uma subscrição:
pubsub.subscriptions.delete
-
Obtenha uma subscrição:
pubsub.subscriptions.get
-
Anuncie uma subscrição:
pubsub.subscriptions.list
-
Atualize uma subscrição:
pubsub.subscriptions.update
-
Anexe uma subscrição a um tópico:
pubsub.topics.attachSubscription
-
Obtenha a Política IAM para uma subscrição:
pubsub.subscriptions.getIamPolicy
-
Configure a política IAM para uma subscrição:
pubsub.subscriptions.setIamPolicy
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Pode configurar o controlo de acesso ao nível do projeto e ao nível do recurso individual. Pode criar uma subscrição num projeto e anexá-la a um tópico localizado num projeto diferente. Certifique-se de que tem as autorizações necessárias para cada projeto.
Desassocie uma subscrição de um tópico
Pode desassociar uma subscrição de um tópico através da Google Cloud consola, da CLI do Google Cloud, da biblioteca cliente ou da API Pub/Sub.
Consola
Para desassociar uma subscrição, siga estes passos:
Na Google Cloud consola, aceda à página Tópicos.
Selecione o tópico do qual quer desassociar uma subscrição.
No separador Subscrições, selecione a subscrição que quer desassociar.
Na página Detalhes da subscrição, clique em Desassociar.
Na caixa de diálogo apresentada, clique novamente em Desassociar.
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 desassociar uma subscrição, use o comando
gcloud pubsub topics detach-subscription
:gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
Se o pedido for bem-sucedido, a linha de comandos apresenta uma confirmação:
Detached subscription [SUBSCRIPTION_ID].
- PROJECT_ID é o ID do seu projeto.
- SUBSCRIPTION_ID é o ID da sua subscrição.
REST
Para desassociar uma subscrição, use o método projects.subscriptions.detach
.
Pedido:
O pedido tem de ser autenticado com um token de acesso no cabeçalho Authorization
. Para obter um token de acesso para as credenciais padrão da aplicação 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
Onde:
Resposta:
Se o pedido for bem-sucedido, a resposta é um objeto JSON vazio.
C++
Antes de experimentar este exemplo, siga as instruções de configuração do C++ no artigo Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C++ do Pub/Sub.
C#
Antes de experimentar este exemplo, siga as instruções de configuração do C# em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C# do Pub/Sub.
Ir
O exemplo seguinte usa a versão principal da biblioteca de cliente Go Pub/Sub (v2). Se ainda estiver a usar a biblioteca v1, consulte o guia de migração para a v2. Para ver uma lista de exemplos de código da v1, consulte os exemplos de código descontinuados.
Antes de experimentar este exemplo, siga as instruções de configuração do Go em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Pub/Sub.
Java
Antes de experimentar este exemplo, siga as instruções de configuração do Java no artigo Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Java do Pub/Sub.
Node.js
Antes de experimentar este exemplo, siga as instruções de configuração do Node.js em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js do Pub/Sub.
Node.ts
Antes de experimentar este exemplo, siga as instruções de configuração do Node.js em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js do Pub/Sub.
PHP
Antes de experimentar este exemplo, siga as instruções de configuração do PHP no artigo Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API PHP Pub/Sub.
Python
Antes de experimentar este exemplo, siga as instruções de configuração do Python em Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Python Pub/Sub.
Ruby
O exemplo seguinte usa a biblioteca cliente Ruby Pub/Sub v3. Se ainda estiver a usar a biblioteca v2, consulte o guia de migração para a v3. Para ver uma lista de exemplos de código do Ruby v2, consulte os exemplos de código descontinuados.
Antes de experimentar este exemplo, siga as instruções de configuração do Ruby em Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Ruby Pub/Sub.
O serviço Pub/Sub pode demorar vários minutos a concluir a desassociação da subscrição do tópico.
Depois de o serviço Pub/Sub desassociar a subscrição do tópico, o serviço Pub/Sub elimina todas as mensagens que retém para a subscrição. Não pode obter estas mensagens da subscrição nem voltar a anexar a subscrição a um tópico. Para libertar a quota do Google Cloud projeto elimine a subscrição.
Se a subscrição e o tópico estiverem em Google Cloud projetos diferentes, o serviço Pub/Sub adiciona uma entrada aos registos de auditoria de ambos os projetos.
O que se segue?
- Crie ou modifique uma subscrição com
gcloud
comandos. - Crie ou modifique uma subscrição com APIs REST.