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 os SMTs de assinatura, 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 as permissões necessárias para atualizar os SMTs de assinatura. Para acessar 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 a um assinante 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 os 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", é 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 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