Este documento explica como atualizar uma transformação de mensagem única (SMT) para uma assinatura do Pub/Sub. As mudanças nas SMTs entram em vigor em alguns minutos. Para SMTs de assinatura, as mudanças entram em vigor para novas mensagens enviadas à assinatura depois que o UDF é atualizado.
Para atualizar SMTs de assinatura, 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 assinatura, 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 assinatura. 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 assinatura:
-
Conceda a permissão de atualização na assinatura:
projects.subscriptions.patch
-
Conceda uma permissão de inscrição no projeto à visualização. Essa permissão só é necessária se você estiver usando o console do Google Cloud :
pubsub.subscriptions.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 assinatura
Para atualizar SMTs de assinatura, siga estas etapas:
Console
-
No console Google Cloud , acesse a página Assinaturas do Pub/Sub.
-
Clique na assinatura em que você quer editar as SMTs.
-
Na página de detalhes da assinatura, clique em Editar.
A guia Transforms lista todas as SMTs anexadas à assinatura.
-
Na página "Editar assinatura", 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 subscriptions update
:gcloud pubsub subscriptions update SUBSCRIPTION_ID \ --message-transforms-file=TRANSFORMS_FILE
Substitua:
-
SUBSCRIPTION_ID: o ID ou nome da assinatura 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 da assinatura, use o seguinte comando:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
Substitua SUBSCRIPTION_ID pelo ID ou nome da assinatura que você quer atualizar.
-