Este documento explica como atualizar uma transformação de mensagem única (SMT, na sigla em inglês) para um tópico do Pub/Sub. As mudanças nas SMTs entram em vigor em alguns minutos. Para SMTs de tópicos, as mudanças se aplicam às novas mensagens publicadas após a atualização da SMT.
Para atualizar SMTs de tópicos, use o console Google Cloud , a Google Cloud CLI, a biblioteca de cliente ou a API Pub/Sub.
Papéis e permissões necessárias
Para receber as permissões necessárias para atualizar SMTs de tópicos, peça ao administrador para conceder a você o papel do IAM de
Editor do Pub/Sub (roles/pubsub.editor
)
no seu 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 atualizar SMTs de tópicos. 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 atualizar SMTs de tópicos:
-
Conceda a permissão "Atualizar um tópico" no tópico:
projects.topics.patch
-
Conceda a permissão "Visualizar um tópico" no projeto. Essa permissão só é necessária se você estiver usando o console do Google Cloud :
pubsub.topics.view
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.
Atualizar SMTs de tópicos
Para atualizar as SMTs de tópicos, siga estas etapas:
Console
No console Google Cloud , acesse a página Tópicos do Pub/Sub.
-
Clique no tópico em que você quer editar as SMTs.
Na página de detalhes do tópico, clique em Editar.
A guia Transformações lista todas as SMTs anexadas ao tópico.
-
Na página "Editar tema", você pode fazer o seguinte:
-
Adicione uma nova SMT. Clique em Adicionar uma transformação.
-
Edite uma SMT. Abra qualquer SMT para editar.
-
Reorganize os SMTs. Use as setas para cima e para baixo.
-
Excluir um SMT. Clique no botão de exclusão.
-
-
Clique em Atualizar.
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.
-
Execute o comando
gcloud pubsub topics update
:gcloud pubsub topics update TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILE
Substitua:
-
TOPIC_ID: o ID ou nome do tópico que você quer atualizar.
-
TRANSFORMS_FILE: o caminho para o arquivo YAML ou JSON que contém as SMTs atualizadas.
Confira a seguir um exemplo de um arquivo de transformações YAML:
- javascriptUdf: code: > function redactSSN(message, metadata) { const data = JSON.parse(message.data); delete data['ssn']; message.data = JSON.stringify(data); return message; } functionName: redactSSN - javascriptUdf: code: > function filterHighAmount(message, metadata) { const data = JSON.parse(message.data); if (data['amount'] > 100 ) { return null; } return message; } functionName: filterHighAmount
Para limpar todos os SMTs do tópico, use o seguinte comando:
gcloud pubsub topics update TOPIC_ID --clear-message-transforms
Substitua TOPIC_ID pelo ID ou nome do tópico que você quer atualizar.
-