Atualize os SMTs da subscrição

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

  1. Na Google Cloud consola, aceda à página Subscrições do Pub/Sub.

    Aceder a Subscrições

  2. Clique na subscrição para a qual quer editar os SMTs.

  3. Na página de detalhes da subscrição, clique em Editar.

    O separador Transformações apresenta todas as SMTs anexadas à subscrição.

  4. Na página Editar subscrição, 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 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.

O que se segue?