Atualizar SMTs de tópicos

Neste documento, explicamos como atualizar uma transformação de mensagem única (SMT) para um tópico do Pub/Sub. As mudanças nos 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 as 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 a permissão necessária para atualizar as 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 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 a permissão pubsub.topics.update, que é necessária para atualizar as SMTs de tópicos.

Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.

É possível configurar o controle de acesso no nível do projeto e no nível 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 tópico", é possível fazer o seguinte:

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

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

    3. Reorganize as 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. No console do Google Cloud , ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  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 os SMTs atualizados.

      Confira um exemplo de 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 todas as 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