Atualizar SMTs de assinatura

Neste documento, explicamos como atualizar uma transformação de mensagem única (SMT, na sigla em inglês) para uma assinatura do Pub/Sub. As mudanças nos SMTs entram em vigor em alguns minutos. Para SMTs de assinatura, as mudanças entram em vigor para novas mensagens entregues à assinatura depois que a UDF é atualizada.

Para atualizar os 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 as SMTs de assinatura, peça ao administrador para conceder a você o papel do IAM 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 os 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 as SMTs de assinatura:

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

Atualizar SMTs de assinatura

Para atualizar os 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 Transformações 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 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. 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 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 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