Atualizar SMTs de tópicos

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

  1. No console Google Cloud , acesse a página Tópicos do Pub/Sub.

    Acesse Tópicos

  2. Clique no tópico em que você quer editar as SMTs.

  3. Na página de detalhes do tópico, clique em Editar.

    A guia Transformações lista todas as SMTs anexadas ao tópico.

  4. Na página "Editar tema", você pode fazer o seguinte:

    1. Adicione uma nova SMT. Clique em Adicionar uma transformação.

    2. Edite uma SMT. Abra qualquer SMT para editar.

    3. Reorganize os SMTs. Use as setas para cima e para baixo.

    4. Excluir um SMT. Clique no botão de exclusão.

  5. Clique em Atualizar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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.

A seguir