Um gatilho do Eventarc declara seu interesse em um determinado evento ou conjunto de eventos. Para configurar o roteamento de eventos, especifique filtros para o gatilho, incluindo a origem do evento e o serviço de destino.
Os eventos são entregues no formato CloudEvents por meio de uma solicitação HTTP. O serviço do Workflows converte o evento em um objeto JSON (seguindo a especificação do CloudEvents) e transmite o evento para a execução do fluxo de trabalho como um argumento do ambiente de execução do fluxo de trabalho. Verifique se o tamanho do evento não ultrapassa 512 KB. Eventos maiores que o tamanho máximo de argumentos do Workflows não acionarão execuções de fluxo de trabalho.
Estas instruções mostram como configurar o roteamento de eventos para que uma execução do fluxo de trabalho seja acionada em resposta a um evento Certificate Manager direto. Para saber mais, consulte a lista de eventos diretos compatíveis.Preparar para criar um gatilho
Antes de criar um gatilho do Eventarc para um fluxo de trabalho de destino, conclua as tarefas a seguir.
Console
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
Ative as APIs Eventarc, Eventarc Publishing, Workflows e Workflow Executions.
Se aplicável, ative a API relacionada aos eventos diretos. Por exemplo, para eventos Certificate Manager , ative a APICertificate Manager .
Se você ainda não tiver uma, crie uma conta de serviço gerenciada pelo usuário e conceda a ela os papéis e as permissões necessários para que o Eventarc gerencie eventos de um fluxo de trabalho de destino.
No console do Google Cloud, acesse a página Contas de serviço.
Selecione o projeto.
No campo Nome da conta de serviço, insira um nome. O Console do Google Cloud preenche o campo ID da conta de serviço com base nesse nome.
No campo Descrição da conta de serviço, insira uma descrição. Por exemplo,
Service account for event trigger
.Clique em Criar e continuar.
Para fornecer o acesso apropriado, na lista Selecionar um papel, escolha os papéis necessários do Identity and Access Management (IAM) para conceder à sua conta de serviço. Para mais informações, consulte Papéis e permissões para destinos do Workflows.
Para papéis adicionais, clique em
Adicionar outro papel e adicione cada papel adicional.Clique em Continuar.
Para concluir a criação da conta de serviço, clique em Concluído.
gcloud
In the Google Cloud console, 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.
Ative as APIs Eventarc, Eventarc Publishing, Workflows e Workflow Executions:
gcloud services enable eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
Se aplicável, ative a API relacionada aos eventos diretos. Por exemplo, para eventos Certificate Manager , ative
certificatemanager.googleapis.com
.Se você ainda não tiver uma, crie uma conta de serviço gerenciada pelo usuário e conceda a ela os papéis e as permissões necessários para que o Eventarc possa gerenciar eventos de um fluxo de trabalho de destino.
Crie a conta de serviço:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Substitua
SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço. Ele precisa ter entre 6 e 30 caracteres e pode conter letras minúsculas, caracteres alfanuméricos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.Conceda os papéis ou as permissões necessários do Identity and Access Management (IAM). Para mais informações, consulte Papéis e permissões para destinos do Workflows.
Criar um gatilho
É possível criar um gatilho do Eventarc com um fluxo de trabalho implantado como
receptor de eventos usando a CLI do Google Cloud (gcloud
ou Terraform) ou
o console do Google Cloud.
Console
- No Console do Google Cloud, acesse a página Gatilhos do Eventarc.
- Clique em Criar gatilho.
- Digite um Nome de gatilho.
Esse é o ID do gatilho e precisa começar com uma letra. Ele pode conter até 63 letras minúsculas, números ou hífens.
- Em Tipo de gatilho, selecione Fontes do Google.
- Na lista Provedor de eventos, selecione
Certificate Manager.
O nome do provedor de eventos usado na documentação do Google Cloud associada pode não ter o prefixo Cloud ou Google Cloud. Por exemplo, no console, o Memorystore para Redis é chamado de Google Cloud Memorystore para Redis.
- Na lista Tipo de evento, nos eventos Diretos, selecione um tipo de evento.
- Para especificar a codificação do payload do evento, na lista Tipo de conteúdo
de dados do evento, selecione application/json ou
application/protobuf.
Um payload de evento formatado em JSON é maior que um formatado em Protobuf. Isso pode afetar a confiabilidade dependendo do destino do evento e dos limites do tamanho do evento. Saiba mais em Problemas conhecidos.
- Na lista Região, selecione global (global).
Saiba mais em Locais do Eventarc.
- Se for aplicável ao evento, clique em Adicionar filtro
e faça as seguintes especificações:
- No campo Atributo 1, dependendo do evento direto escolhido, selecione um ID de recurso que possa atuar como filtro de evento.
- Selecione um operador:
- Igual
- Padrão de caminho
Para mais informações, consulte Entender os padrões de caminho.
- No campo Valor do atributo 1, dependendo do operador escolhido, digite o valor exato ou aplique um padrão de caminho.
- Se mais filtros de atributos forem aplicáveis, clique em Adicionar filtro e especifique os valores apropriados.
- Selecione a conta de serviço que vai invocar seu serviço
ou fluxo de trabalho.
ou crie uma nova conta de serviço.
Ele especifica o e-mail da conta de serviço do Identity and Access Management (IAM) associado ao gatilho e aos quais você já concedeu papéis específicos exigidos pelo Eventarc.
- Na lista Destino do evento, selecione Workflows.
- Selecione um fluxo de trabalho.
Esse é o nome do fluxo de trabalho para o qual transmitir eventos. Os eventos de uma execução de fluxo de trabalho são transformados e transmitidos para o fluxo de trabalho como argumentos de ambiente de execução.
Para mais informações, consulte Criar um gatilho para o Workflows.
- Clique em Criar.
Depois que um gatilho é criado, os filtros da origem de eventos não podem ser modificados. Crie um novo gatilho e exclua o antigo. Para mais informações, consulte Gerenciar acionadores.
- Clique em Criar.
gcloud
Para criar um gatilho, execute um comando
gcloud eventarc triggers create
com as sinalizações obrigatórias e opcionais.
gcloud eventarc triggers create TRIGGER \ --location=global \ --destination-workflow=DESTINATION_WORKFLOW \ --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \ --service-account="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"
Replace the following:
TRIGGER
: the ID of the trigger or a fully qualified identifier.-
DESTINATION_WORKFLOW
: the ID of the deployed workflow that receives the events from the trigger. The workflow can be in any of the Workflows supported locations and does not need to be in the same location as the trigger. However, the workflow must be in the same project as the trigger. -
DESTINATION_WORKFLOW_LOCATION
(optional): the location in which the destination workflow is deployed. If not specified, it is assumed that the workflow is in the same location as the trigger. EVENT_FILTER_TYPE
: the identifier of the event. An event is generated when an API call for the method succeeds. For long-running operations, the event is only generated at the end of the operation, and only if the action is performed successfully. For a list of supported event types, see Google event types supported by Eventarc.
COLLECTION_ID
(optional): the resource component that can act as an event filter, and is one of the following:certificate
certificateissuanceconfig
certificatemap
certificatemapentry
dnsauthorization
-
RESOURCE_ID
: the identifier of the resource used as the filtering value for the associated collection. For more information, see Resource ID. -
PATH_PATTERN
: the path pattern to apply when filtering for the resource -
EVENT_DATA_CONTENT_TYPE
: (optional) the encoding of the event payload. This can beapplication/json
orapplication/protobuf
. The default encoding isapplication/json
.Note that an event payload formatted in JSON is larger than one formatted in Protobuf. This might impact reliability depending on your event destination and its limits on event size. For more information, see Known issues.
-
SERVICE_ACCOUNT_NAME
: the name of the IAM service account you created to which you granted specific roles required by Workflows. -
PROJECT_ID
: your Google Cloud project ID
Notes:
- The
--location
flag must beglobal
. For more information, see Eventarc locations. - The
--event-filters="type=EVENT_FILTER_TYPE"
flag is required. If no other event filter is set, events for all resources are matched. EVENT_FILTER_TYPE
cannot be changed after creation. To changeEVENT_FILTER_TYPE
, create a new trigger and delete the old one.- Each trigger can have multiple event filters, comma delimited in one
--event-filters
=[ATTRIBUTE
=VALUE
,...] flag, or you can repeat the flag to add more filters. Only events that match all the filters are sent to the destination. Wildcards and regular expressions are not supported; however, when using the--event-filters-path-pattern
flag, you can define a resource path pattern. - The
--service-account
flag is used to specify the Identity and Access Management (IAM) service account email associated with the trigger.
Example:
gcloud eventarc triggers create helloworld-trigger \ --location=global \ --destination-workflow=my-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.certificatemanager.certificate.v1.updated" \ --event-filters-path-pattern="certificate=my-certificate-*" \ --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Esse comando cria um gatilho chamado helloworld-trigger
para o
evento identificado como google.cloud.certificatemanager.certificate.v1.updated
e
corresponde a eventos para IDs de certificate
que começam com my-certificate-
.
Terraform
É possível criar um gatilho para um fluxo de trabalho usando o Terraform. Para mais detalhes, acesse Como acionar um fluxo de trabalho usando o Eventarc e o Terraform.