Encaminhe eventos do Gestor de certificados para o Workflows

Um acionador do Eventarc declara o seu interesse num determinado evento ou conjunto de eventos. Pode configurar o encaminhamento de eventos especificando filtros para o acionador, incluindo a origem do evento e o fluxo de trabalho de destino.

Os eventos são entregues no formato CloudEvents através de um pedido HTTP. O serviço Workflows converte o evento num objeto JSON (seguindo a especificação CloudEvents) e passa o evento para a execução do fluxo de trabalho como um argumento de tempo de execução do fluxo de trabalho. Certifique-se de que o tamanho do evento não excede 512 KB. Os eventos superiores ao tamanho máximo dos argumentos dos fluxos de trabalho não acionam execuções de fluxos de trabalho.

Estas instruções mostram como configurar o encaminhamento de eventos para que uma execução do fluxo de trabalho seja acionada em resposta a um eventoCertificate Manager direto. Para mais detalhes, consulte a lista de eventos diretos suportados.

Prepare-se para criar um acionador

Antes de criar um acionador do Eventarc para um fluxo de trabalho de destino, conclua as seguintes tarefas.

Consola

  1. Na Google Cloud consola, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.

    Aceder ao seletor de projetos

  2. Ative as APIs Eventarc, Eventarc Publishing, Workflows e Workflow Executions.

    Ative as APIs

  3. Se aplicável, ative a API relacionada com os eventos diretos. Por exemplo, para eventos, ative a APICertificate Manager . Certificate Manager

  4. Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para um fluxo de trabalho de destino.

    1. Na Google Cloud consola, aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione o seu projeto.

    3. No campo Nome da conta de serviço, introduza um nome. A Google Cloud consola preenche o campo ID da conta de serviço com base neste nome.

      No campo Descrição da conta de serviço, introduza uma descrição. Por exemplo, Service account for event trigger.

    4. Clique em Criar e continuar.

    5. Para conceder o acesso adequado, na lista Selecionar uma função, selecione as funções de gestão de identidade e de acesso (IAM) necessárias para conceder à sua conta de serviço. Para mais informações, consulte o artigo Funções e autorizações para alvos de fluxos de trabalho.

      Para funções adicionais, clique em Adicionar outra função e adicione cada função adicional.

    6. Clique em Continuar.

    7. Para concluir a criação da conta, clique em Concluído.

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. 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

  3. Se aplicável, ative a API relacionada com os eventos diretos. Por exemplo, para Certificate Manager eventos, ative certificatemanager.googleapis.com.

  4. Se ainda não tiver uma, crie uma conta de serviço gerida pelo utilizador e, em seguida, conceda-lhe as funções e as autorizações necessárias para que o Eventarc possa gerir eventos para um fluxo de trabalho de destino.

    1. 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. Tem de ter entre 6 e 30 carateres e pode conter carateres alfanuméricos em minúsculas e traços. Depois de criar uma conta de serviço, não pode alterar o respetivo nome.

    2. Conceda as funções ou as autorizações da gestão de identidade e de acesso (IAM) necessárias. Para mais informações, consulte o artigo Funções e autorizações para alvos de fluxos de trabalho.

Crie um acionador

Pode criar um acionador do Eventarc com um fluxo de trabalho implementado como o recetor de eventos através da CLI Google Cloud (gcloud ou Terraform) ou através da consola Google Cloud .

Consola

  1. Na Google Cloud consola, aceda à página Triggers do Eventarc.

    Aceda a Acionadores

  2. Clique em Criar acionador.
  3. Escreva um Nome do acionador.

    Este é o ID do acionador e tem de começar com uma letra. Pode conter até 63 letras minúsculas, números ou hífenes.

  4. Para o Tipo de acionador, selecione Fontes Google.
  5. Na lista Fornecedor de eventos, selecione Certificate Manager.

    Tenha em atenção que o nome do fornecedor de eventos usado na Google Cloud documentação associada pode não ter um prefixo de Cloud ou Google Cloud. Por exemplo, na consola, o Memorystore for Redis é denominado Google Cloud Memorystore for Redis.

  6. Na lista Tipo de evento, nos eventos Direto, selecione um tipo de evento.
  7. Para especificar a codificação da carga útil do evento, na lista Tipo de conteúdo dos dados do evento, selecione application/json ou application/protobuf.

    Tenha em atenção que um payload de evento formatado em JSON é maior do que um formatado em Protobuf. Isto pode afetar a fiabilidade, dependendo do destino do evento e dos respetivos limites de tamanho do evento. Para mais informações, consulte a secção Problemas conhecidos.

  8. Na lista Região, selecione global (Global).

    Para mais informações, consulte o artigo Localizações do Eventarc.

  9. Se aplicável ao fornecedor de eventos, clique em Adicionar filtro e especifique o seguinte:
    1. No campo Atributo 1, consoante o evento direto que escolheu, selecione um ID do recurso que pode funcionar como um filtro de eventos.
    2. Selecione um operador:
    3. No campo Valor do atributo 1, consoante o operador que escolheu, escreva o valor exato ou aplique um padrão de caminho.
    4. Se forem aplicáveis mais filtros de atributos, clique em Adicionar filtro e especifique os valores adequados.
  10. Selecione a conta de serviço que vai invocar o seu serviço ou fluxo de trabalho.

    Em alternativa, pode criar uma nova conta de serviço.

    Isto especifica o email da conta de serviço de gestão de identidade e de acesso (IAM) associado ao acionador e ao qual concedeu anteriormente funções específicas necessárias pelo Eventarc.

  11. Na lista Destino do evento, selecione Workflows.
  12. Selecione um fluxo de trabalho.

    Este é o nome do fluxo de trabalho para o qual os eventos são transmitidos. Os eventos de uma execução do fluxo de trabalho são transformados e transmitidos ao fluxo de trabalho como argumentos de tempo de execução.

    Para mais informações, consulte o artigo Crie um acionador para fluxos de trabalho.

  13. Opcionalmente, para adicionar uma etiqueta, pode clicar em Adicionar etiqueta. As etiquetas são pares de chave-valor que ajudam a organizar os seus Google Cloud recursos. Para mais informações, consulte o artigo O que são etiquetas?
  14. Clique em Criar.
  15. Depois de criar um acionador, não é possível modificar os filtros da origem do evento. Em alternativa, crie um novo acionador e elimine o antigo. Para mais informações, consulte o artigo Faça a gestão dos acionadores.

  1. Clique em Criar.

gcloud

Pode criar um acionador executando um gcloud eventarc triggers createcomando juntamente com flags 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 be application/json or application/protobuf. The default encoding is application/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 be global. 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 change EVENT_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"

Este comando cria um acionador denominado helloworld-trigger para o evento identificado como google.cloud.certificatemanager.certificate.v1.updated e corresponde a eventos para IDs certificate que começam com my-certificate-.