Depois de criar uma assinatura, você pode mudar a modalidade de entrega para push, pull ou exportação.
Antes de começar
- Crie uma das assinaturas compatíveis.
Papéis e permissões necessárias
Para receber a permissão necessária para mudar um tipo de assinatura, peça ao administrador para conceder a você o papel de editor do Pub/Sub (roles/pubsub.editor) do IAM na assinatura.
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,
que é necessária para
mudar um tipo de assinatura.
pubsub.subscriptions.update
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
Você pode 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.
Mudar o tipo de entrega de uma assinatura
Para mudar o tipo de entrega de uma assinatura, siga estas etapas.
Console
No Google Cloud console do, acesse a página Assinaturas.
Clique no nome da assinatura que você quer atualizar.
Na página de detalhes da assinatura, clique em Editar.
Em Tipo de entrega, selecione o novo tipo de entrega.
Preencha as propriedades do novo tipo de assinatura. Para mais informações, consulte os tópicos a seguir:
Opcional. Atualize outras propriedades da assinatura conforme necessário.
Clique em Atualizar.
gcloud
Para mudar o tipo de entrega, use o
gcloud pubsub subscriptions update
comando. Limpe a configuração do tipo de entrega atual e defina a configuração do novo tipo, da seguinte maneira:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
CLEAR_CONFIG_FLAG \
NEW_CONFIG_FLAGS
Substitua:
SUBSCRIPTION_ID: o nome da assinatura a ser atualizada.
CLEAR_CONFIG_FLAG: uma flag para limpar a configuração atual do tipo de entrega. Use uma das seguintes flags, dependendo do tipo de entrega atual:
Assinatura por pull:
--no-enable-exactly-once-deliveryAssinatura por push:
--push-endpoint=""Assinatura do BigQuery:
--clear-bigquery-configAssinatura de Cloud Storage:
--clear-cloud-storage-config
NEW_CONFIG_FLAGS: flags para configurar o novo tipo de entrega. Para mais informações, consulte a documentação do
gcloud pubsub subscriptions updatecomando.
Exemplos
Mudar uma assinatura do BigQuery para uma assinatura por pull:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
--clear-bigquery-config
Mudar uma assinatura por push para uma assinatura do BigQuery:
gcloud pubsub subscriptions update SUBSCRIPTION_ID \
--push-endpoint="" \
--bigquery-table=BIGQUERY_TABLE
Atualizar um endpoint de assinatura por push
Para atualizar o URL do endpoint em uma assinatura por push, siga estas etapas.
Console
Para modificar o URL do endpoint, siga estas etapas:
- No Google Cloud console do, acesse a página Assinaturas.
- Clique em more_vert ao lado da assinatura que você quer atualizar.
- Em Tipo de entrega, escolha uma opção de entrega.
- Preencha outras propriedades da assinatura conforme necessário.
- Clique em Atualizar.
gcloud
-
No Google Cloud console do, ative o Cloud Shell.
Na parte de baixo do Google Cloud console do Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Para modificar o URL do endpoint, execute o
gcloud pubsub subscriptions modify-push-configcomando:gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
Se a assinatura já estiver usando a entrega por pull, a configuração do endpoint de push alternará a modalidade para a entrega por push.
É possível alternar a entrega de push para pull alterando o endpoint de push para uma string vazia.
REST
Para modificar as configurações de push de uma assinatura, use o
projects.subscriptions.modifyPushConfig
método:
Solicitação:
A solicitação precisa ser autenticada com um token de acesso no
Authorization cabeçalho. Para conseguir um token de acesso para o Application Default Credentials atual, use: gcloud auth application-default print-access-token.
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:modifyPushConfig Authorization: Bearer ACCESS_TOKEN
Corpo da solicitação:
{
"pushConfig": {
"pushEndpoint": "PUSH_ENDPOINT"
}
}Em que:
https://myproject.appspot.com/myhandler.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 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.
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 Python do Pub/Sub.
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.
A seguir
- Criar ou modificar uma assinatura com
gcloudcomandos. - Criar ou modificar uma assinatura com APIs REST.