Este documento explica como atualizar uma transformação de mensagem única (SMT) para uma subscrição do Pub/Sub. As alterações aos SMTs entram em vigor dentro de alguns minutos. Para SMTs de subscrição, as alterações entram em vigor para novas mensagens entregues à subscrição após a atualização da FDU.
Para atualizar os SMTs de subscrições, pode usar a Google Cloud consola, a CLI do Google Cloud, a biblioteca de cliente ou a API Pub/Sub.
Funções e autorizações necessárias
Para receber as autorizações de que
precisa para atualizar os SMTs de subscrições,
peça ao seu administrador para lhe conceder a
função de IAM Editor do Pub/Sub (roles/pubsub.editor
)
no seu 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 atualizar os SMTs de subscrição. 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 atualizar os SMTs de subscrição:
-
Conceda à atualização uma autorização de subscrição na subscrição:
projects.subscriptions.patch
-
Conceda à vista uma autorização de subscrição no projeto. Esta autorização só é necessária se estiver a usar a Google Cloud consola:
pubsub.subscriptions.view
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.
Atualize os SMTs da subscrição
Para atualizar os SMTs de subscrição, siga estes passos:
Consola
-
Na Google Cloud consola, aceda à página Subscrições do Pub/Sub.
-
Clique na subscrição para a qual quer editar os SMTs.
-
Na página de detalhes da subscrição, clique em Editar.
O separador Transformações apresenta todas as SMTs anexadas à subscrição.
-
Na página Editar subscrição, pode realizar as seguintes tarefas:
-
Adicione um novo SMT. Clique em Adicionar uma transformação.
-
Edite um SMT existente. Expanda qualquer SMT para o editar.
-
Reorganize os SMTs. Use as setas para cima e para baixo.
-
Elimine um SMT. Clique no botão de eliminaçã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 o seguinte:
-
SUBSCRIPTION_ID: o ID ou o nome da subscrição que quer atualizar.
-
TRANSFORMS_FILE: o caminho para o ficheiro YAML ou JSON que contém os SMTs atualizados.
Segue-se um exemplo de um ficheiro 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 subscrição, use o seguinte comando:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
Substitua SUBSCRIPTION_ID pelo ID ou nome da subscrição que quer atualizar.
-