Atualize os SMTs de tópicos

Este documento explica como atualizar uma transformação de mensagem única (SMT) para um tópico do Pub/Sub. As alterações aos SMTs entram em vigor em poucos minutos. Para os SMTs de tópicos, as alterações aplicam-se a novas mensagens publicadas após a atualização do SMT.

Para atualizar os SMTs de tópicos, 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 tópicos, 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 tópicos. 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 tópicos:

  • Conceda à atualização uma autorização de tópico no tópico: projects.topics.patch
  • Conceda a autorização para ver um tópico no projeto. Esta autorização só é necessária se estiver a usar a Google Cloud consola: pubsub.topics.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 de tópicos

Para atualizar os SMTs de tópicos, siga estes passos:

Consola

  1. Na Google Cloud consola, aceda à página Tópicos do Pub/Sub.

    Aceda a Tópicos

  2. Clique no tópico para o qual quer editar as SMTs.

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

    O separador Transformações apresenta todas as SMTs anexadas ao tópico.

  4. Na página Editar tópico, pode realizar as seguintes tarefas:

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

    2. Edite um SMT existente. Expanda qualquer SMT para o editar.

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

    4. Elimine um SMT. Clique no botão de eliminaçã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 o seguinte:

    • TOPIC_ID: o ID ou o nome do tópico 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 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 quer atualizar.

O que se segue?