Gatilho do Cloud Pub/Sub

O gatilho do Cloud Pub/Sub permite executar a integração com base nos eventos do seu middleware do Pub/Sub.

Com esse gatilho, é possível executar uma integração sempre que um editor escreve uma mensagem no tópico escolhido por você. O tópico pode estar no mesmo projeto Google Cloud da integração ou em um projeto Google Cloud diferente. Quando esse gatilho é executado, ele também grava a mensagem publicada na variável de saída CloudPubSubMessage. Com base nos seus requisitos, é possível usar essa variável nos gatilhos ou tarefas downstream.

Para saber como criar uma integração de amostra usando o Application Integration e o gatilho do Cloud Pub/Sub, consulte Ouvir o tópico do Cloud Pub/Sub e enviar um e-mail.

Com esse gatilho, é possível executar uma integração sempre que um editor escreve uma mensagem no tópico escolhido por você. Quando esse gatilho é executado, ele também grava a mensagem publicada na variável de saída CloudPubSubMessage. Com base nos seus requisitos, é possível usar essa variável nos gatilhos ou tarefas downstream.

Antes de começar

Execute as tarefas a seguir no projeto Google Cloud antes de configurar o gatilho do Cloud Pub/Sub.

  • Atribua o papel Administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin) ao usuário que está criando esse gatilho.
  • Ative a API Pub/Sub para o projeto Google Cloud que tem sua integração.
  • Se a API Pub/Sub estiver protegida por um perímetro de serviço, defina os seguintes papéis do IAM para gerenciar esses perímetros:

    • Administrador do Access Context Manager (roles/accesscontextmanager.policyAdmin)
    • Editor do Access Context Manager (roles/accesscontextmanager.policyEditor)
    • Leitor do Access Context Manager (roles/accesscontextmanager.policyReader)

  • Confirme se você tem um tópico do Pub/Sub. Para criar um novo tópico do Pub/Sub:
    1. Acesse a página de tópicos do Pub/Sub no Console do Cloud

      Acesse a página de tópicos do Cloud Pub/Sub.

    2. Clique em Criar um tópico
    3. No campo ID do tópico, forneça um nome de tópico exclusivo.
    4. Clique em Salvar.
Para mais informações sobre como gerenciar o acesso usando papéis do IAM, consulte Controle de acesso.

Para informações sobre como conceder papéis a principais, consulte Como conceder, alterar e revogar acesso.

Adicionar um gatilho do Cloud Pub/Sub

Para adicionar um gatilho do Cloud Pub/Sub a uma integração nova ou existente, siga as etapas abaixo:
  1. No console do Google Cloud , acesse a página Application Integration.

    Acessar o Application Integration

  2. No menu de navegação, clique em Integrações.

    A página Lista de integrações aparece com todas as integrações disponíveis no projeto do Google Cloud.

  3. Selecione uma integração ou clique em Criar integração para criar uma.

    Caso você esteja criando uma nova integração, siga estas etapas:

    1. Digite um nome e uma descrição no painel Criar integração.
    2. Selecione uma região para a integração.
    3. Selecione uma conta de serviço para a integração. É possível mudar ou atualizar os detalhes da conta de serviço de uma integração a qualquer momento no painel Resumo da integração na barra de ferramentas de integração.
    4. Clique em Criar.

    A integração recém-criada é aberta no editor de integração.

  4. Na barra de navegação do editor de integração, clique em Acionadores para conferir a lista de acionadores disponíveis.
  5. Clique e posicione o elemento Gatilho do Cloud Pub/Sub no designer.

Configurar um gatilho do Cloud Pub/Sub

Clique no elemento de gatilho do Cloud Pub/Sub no editor de integração para exibir o painel de configuração do gatilho e faça o seguinte:

  1. Especifique o tópico que o gatilho ouvirá no campo Tópico do Pub/Sub no seguinte formato:
    projects/PROJECT_ID/topics/TOPIC_ID

    Para ver todos os tópicos disponíveis no seu projeto do Google Cloud , consulte a coluna Nome do tópico em Tópicos. Você também pode selecionar um assunto de um projeto Google Cloud diferente.

    Substitua:
    • PROJECT_ID: o projeto Google Cloud em que o tópico foi criado.
    • TOPIC_ID é o ID do tópico do Pub/Sub. O tópico pode estar no mesmo projeto Google Cloud da sua integração ou em um projeto Google Cloud diferente.
  2. Selecione a conta de serviço que você quer usar para invocar a integração. Também é possível escolher uma variável de configuração criada na integração. O valor da variável de configuração precisa ser um endereço de e-mail de conta de serviço com o seguinte formato: SERVICE_ACCOUNT_NAME@project-id.iam.gserviceaccount.com. Por exemplo, application-integration-invoke@project123.iam.gserviceaccount.com.

    Para informações sobre como criar uma variável de configuração, consulte criar uma variável. Para saber como criar uma conta de serviço, consulte Criar uma conta de serviço.

    Se você escolher uma variável de configuração, conceda os papéis necessários à conta de serviço a que ela se refere. Para mais informações sobre como conceder papéis, consulte Papéis necessários do IAM.

    Se não houver contas de serviço, crie uma clicando em Criar nova na lista Conta de serviço.

Por padrão, a opção de período de expiração para assinaturas é definida como never expire. Se quiser definir outro valor para a expiração, no console Google Cloud , acesse a página de assinatura do Pub/Sub e edite a assinatura.

Papéis do IAM necessários para contas de serviço

Ao clicar em Conceder ao selecionar uma conta de serviço, os seguintes papéis são fornecidos automaticamente às várias contas de serviço.

Conta de serviço Papel do IAM concedido
Conta de serviço padrão do Application Integration: service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
  • Editor do Pub/Sub (roles/pubsub.editor)
  • Usuário da conta de serviço (roles/iam.serviceAccountUser)

Se o projeto Google Cloud do tópico do Pub/Sub for diferente do projeto Google Cloud da integração, a conta de serviço padrão precisará do papel de editor do Pub/Sub no projeto Google Cloud do tópico.

Conta de serviço selecionada para esse gatilho Invocador do Application Integration (roles/integrations.integrationInvoker)

Saída do gatilho

Para cada evento, o acionador do Cloud Pub/Sub gera uma variável de saída CloudPubSubMessage que pode ser usada nas tarefas downstream. A variável está no formato JSON e tem a estrutura PubsubMessage.

Criar uma assinatura com filtro para sua integração

Se você quiser definir um filtro para a assinatura do Pub/Sub e processar eventos específicos na sua integração, siga estas etapas:

  1. Publique a integração com o gatilho do Cloud Pub/Sub configurado. Esta etapa cria a assinatura no projeto de integração.
  2. No console do Google Cloud , acesse a página Assinaturas.

    Acessar "Assinaturas"

  3. Abra a assinatura e copie todos os detalhes, incluindo o nome dela.
  4. Exclua a assinatura atual.
  5. Crie uma nova assinatura com todos os detalhes da assinatura excluída, incluindo o nome, que você copiou na etapa 3, e adicione um filtro a ela.

    A assinatura recém-criada aciona a integração com mensagens filtradas.

Exclusões do SLA

O gatilho do Cloud Pub/Sub depende do produto Pub/Sub. Como essa dependência é externa à Application Integration, os termos e condições do contrato de nível de serviço (SLA) da integração de aplicativos são aplicáveis somente quando o gatilho do Cloud Pub/Sub inicia a execução de uma integração active.

Usar gatilhos do Pub/Sub com o VPC Service Controls

Quando você configura um gatilho do Pub/Sub na Application Integration e tenta publicar a integração, a criação da assinatura necessária do Pub/Sub falha se a API Pub/Sub estiver protegida por um perímetro de serviço no VPC Service Controls.

Os perímetros de serviço aplicam limites de segurança aos seus recursos do Google Cloud , e essas políticas podem impedir que o Application Integration crie a assinatura necessária do Pub/Sub durante a publicação da integração.

Para configurar e publicar um gatilho do Pub/Sub nesses cenários, siga estas etapas:

  1. Remova temporariamente a API Pub/Sub do perímetro de serviço:
    1. No console do Google Cloud , acesse a página VPC Service Controls.

      Acessar o VPC Service Controls

    2. Selecione o projeto do Google Cloud que contém o tópico do Pub/Sub a ser usado na integração.
    3. (Opcional) Se nenhuma política de acesso estiver configurada para o projeto selecionado, a mensagem Não foram encontrados perímetros de serviço da VPC no escopo atual vai aparecer. Nesse caso, clique em Mudar para o escopo da organização para acessar o nível da organização.
    4. Na página VPC Service Controls, na tabela, clique no nome do perímetro de serviço que você quer modificar.
    5. Na página Detalhes do perímetro de serviço, clique em Editar.
    6. No painel Serviços restritos, filtre e selecione o serviço pubsub.googleapis.com.
    7. Clique em Remover selecionados.
    8. Clique em Salvar. Na caixa de diálogo de confirmação, clique em Confirmar para remover a API Pub/Sub do perímetro de serviço do VPC Service Controls.
  2. Adicione e configure o gatilho do Pub/Sub na sua integração.
  3. Publicar a integração.
  4. Adicione a API Pub/Sub de volta ao perímetro de serviço:
    1. Acesse a página do VPC Service Controls.

      Acessar o VPC Service Controls

    2. Na página VPC Service Controls, na tabela, clique no mesmo perímetro de serviço que você modificou antes.
    3. Na página Detalhes do perímetro de serviço, clique em Editar.
    4. No painel Serviços restritos, clique em Adicionar serviços.
    5. Filtre e selecione o serviço pubsub.googleapis.com.
    6. Clique em Adicionar serviços selecionados.
    7. Clique em Salvar. Na caixa de diálogo de confirmação, clique em Confirmar para adicionar a API Pub/Sub de volta ao perímetro de serviço do VPC Service Controls.

Preços

Os gatilhos do Cloud Pub/Sub e do Salesforce não exigem a criação de um conector. No entanto, se você usar a tarefa de conectores para se conectar ao Pub/Sub ou ao Salesforce, o uso do conector será cobrado. Para informações sobre preços, consulte Preços da Application Integration.

Considerações

  • O tamanho máximo de uma mensagem do Pub/Sub é de 10 MB. Para entender todas as limitações do Pub/Sub, consulte Cotas e limites do Pub/Sub.
  • É possível que o Pub/Sub escreva a mesma mensagem mais de uma vez em um tópico. Para entender esse comportamento do Pub/Sub, consulte Entrega pelo menos uma vez. Por isso, você precisa projetar a integração como idempotente para que ela não permita que uma mensagem seja gravada mais de uma vez em um tópico.

    O campo message_id no cabeçalho da mensagem identifica exclusivamente uma mensagem do Pub/Sub.

  • O gatilho do Cloud Pub/Sub não é compatível com o ordenamento de mensagens. A ordenação de mensagens do Pub/Sub está desativada para a assinatura criada pelo gatilho do Cloud Pub/Sub e não pode ser ativada.
  • Se você cancelar a publicação de uma integração, a assinatura do Pub/Sub não será excluída para evitar a perda de mensagens. No entanto, se você excluir a versão publicada ou todas as versões de uma integração, a assinatura do Pub/Sub também será excluída.

Cotas e limites

Para informações sobre o assunto, consulte Cotas e limites.

A seguir