Atualizar SMTs de assinatura

Este documento explica como atualizar uma transformação de mensagem única (SMT) para uma assinatura do Pub/Sub. As mudanças nas SMTs entram em vigor em alguns minutos. Para SMTs de assinatura, as mudanças entram em vigor para novas mensagens enviadas à assinatura depois que o UDF é atualizado.

Para atualizar SMTs de assinatura, 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 assinatura, 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 assinatura. 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 assinatura:

  • Conceda a permissão de atualização na assinatura: projects.subscriptions.patch
  • Conceda uma permissão de inscrição no projeto à visualização. Essa permissão só é necessária se você estiver usando o console do Google Cloud : pubsub.subscriptions.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 assinatura

Para atualizar SMTs de assinatura, siga estas etapas:

Console

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

    Acessar "Assinaturas"

  2. Clique na assinatura em que você quer editar as SMTs.

  3. Na página de detalhes da assinatura, clique em Editar.

    A guia Transforms lista todas as SMTs anexadas à assinatura.

  4. Na página "Editar assinatura", 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 subscriptions update:

    gcloud pubsub subscriptions update SUBSCRIPTION_ID \
        --message-transforms-file=TRANSFORMS_FILE

    Substitua:

    • SUBSCRIPTION_ID: o ID ou nome da assinatura 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 da assinatura, use o seguinte comando:

    gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms

    Substitua SUBSCRIPTION_ID pelo ID ou nome da assinatura que você quer atualizar.

A seguir