O Eventarc permite criar arquiteturas orientadas por eventos sem ter que implementar, personalizar ou manter a infraestrutura subjacente.
O Eventarc é oferecido em duas edições: Eventarc Advanced e Eventarc Standard. As duas edições oferecem uma solução de eventos escalonável, sem servidor e totalmente gerenciada que permite rotear eventos de origens para destinos de forma assíncrona. Para mais informações, consulte Escolher o Eventarc Advanced ou o Eventarc Standard.
O Eventarc Standard oferece uma solução padronizada para gerenciar o fluxo de mudanças de estado, chamadas de eventos, entre microsserviços separados. Quando acionado, o Eventarc Standard encaminha esses eventos para vários destinos (neste documento, consulte Destinos de eventos) e gerencia a entrega, segurança, autorização, observabilidade e erros de processamento para você.
É possível gerenciar o Eventarc no Google Cloud console, na linha de comando, usando a CLI gcloud ou a API Eventarc.
1 Eventos de provedores do Google são enviados diretamente da origem (Cloud Storage, por exemplo) ou usando entradas de registros de auditoria do Cloud, e usam Pub/Sub como a camada de transporte. Os eventos de origens do Pub/Sub podem usar um tópico existente do Pub/Sub ou o Eventarc criará um tópico automaticamente e o gerenciará para você.
2 Eventos dos destinos do Google Kubernetes Engine (GKE), incluindo serviços de veiculação do Knative em execução em um cluster do GKE, usam o encaminhador de eventos do Eventarc para extrair novos eventos do Pub/Sub e encaminhá-los ao destino. Esse componente atua como mediador entre a camada de transporte do Pub/Sub e o serviço de destino. Ele funciona em serviços atuais e também oferece suporte a serviços de sinalização (incluindo os não expostos fora do cluster totalmente gerenciado), além de simplificar a configuração e a manutenção. O ciclo de vida do encaminhador de eventos é gerenciado pelo Eventarc. Se você excluir acidentalmente o encaminhador de eventos, o Eventarc restaurará esse componente.
3 Os eventos de uma execução de fluxo de trabalho são transformados e transmitidos para o fluxo de trabalho como argumentos de tempo de execução. Workflows podem combinar e orquestrar Google Cloud serviços de API baseados em HTTP na ordem que você definir.
4 Todas as funções orientadas a eventos nas funções do Cloud Run usam gatilhos do Eventarc para entregar eventos. É possível configurar gatilhos do Eventarc ao implantar uma função do Cloud Run usando a interface de funções do Cloud Run.
Principais casos de uso
O Eventarc é compatível com muitos casos de uso para aplicativos de destino. Por exemplo:
| Configurar e monitorar |
|
| Harmonizar |
|
| Analisar |
|
Eventos
Um evento é um registro de dados que expressa uma ocorrência e o contexto dela. Um evento é uma unidade distinta de comunicação, independente de outros eventos. Por exemplo, um evento pode indicar uma mudança nos dados em um banco de dados, um arquivo adicionado a um sistema de armazenamento ou um job programado.
Consulte os tipos de eventos do Google com suporte do Eventarc.
Provedores de eventos
Os eventos são encaminhados de um provedor de eventos (a origem) para consumidores de eventos interessados. O roteamento é realizado com base nas informações contidas no evento, mas um evento não identifica um destino de roteamento específico. O Eventarc é compatível com eventos de mais de 130 provedores do Google. Eles enviam eventos (por exemplo, uma atualização de um objeto em um bucket do Cloud Storage ou uma mensagem publicada em um tópico do Pub/Sub) diretamente da origem ou por meio de entradas dos Registros de auditoria do Cloud.
Destinos de eventos
Os eventos são roteados para um destino específico (o destino) conhecido como receptor (ou consumidor) do evento por uma assinatura de push do Pub/Sub.
Cloud Run
Saiba como criar um serviço receptor de eventos que pode ser implantado no Cloud Run.
Para determinar a melhor maneira de encaminhar eventos para um serviço do Cloud Run, consulte Rotas de eventos.
Cloud Run functions
Todas as funções orientadas a eventos nas funções do Cloud Run usam gatilhos do Eventarc para entregar eventos. Um gatilho do Eventarc permite que uma função seja acionada por qualquer tipo de evento compatível com o Eventarc. É possível configurar gatilhos do Eventarc ao implantar uma função do Cloud Run usando a interface de funções do Cloud Run.
GKE
O Eventarc é compatível com a criação de gatilhos direcionados aos serviços do Google Kubernetes Engine (GKE). Isso inclui os endpoints públicos de serviços particulares e públicos em execução em um cluster do GKE.
Para que o Eventarc segmente e gerencie serviços em qualquer cluster, conceda todas as permissões necessárias à conta de serviço do Eventarc.
Ative a Federação de Identidade da Carga de Trabalho do GKE no cluster do GKE em que o serviço de destino está sendo executado. A Federação de Identidade da Carga de Trabalho para o GKE é obrigatória para configurar corretamente o encaminhador de eventos e é a forma recomendada de acessar Google Cloud serviços de aplicativos em execução no GKE devido às propriedades de segurança e maleabilidade da ferramenta. Para mais informações, consulte Ativar a Identidade da carga de trabalho.
Endpoints HTTP internos em uma rede VPC
É possível configurar o roteamento de eventos para um endpoint HTTP interno em uma rede de nuvem privada virtual (VPC). Para configurar o gatilho, você também precisa fornecer um ID de anexo de rede. Para mais informações, consulte Rotear eventos para um endpoint HTTP interno em uma rede VPC.
Workflows
É possível acionar a execução de um fluxo de trabalho. Workflows exigem um e-mail da conta de serviço do IAM que o gatilho do Eventarc usará para invocar as execuções do fluxo de trabalho. Recomendamos o uso de uma conta de serviço com os privilégios mínimos necessários para acessar os recursos necessários. Para mais informações, consulte Criar e gerenciar contas de serviço.
Formato e bibliotecas de eventos
O Eventarc entrega eventos, independentemente do provedor, para o destino em um formato CloudEvents que usa uma solicitação HTTP no modo de conteúdo binário. CloudEvents é uma especificação para descrever metadados de eventos de maneira comum.
Dependendo do provedor do evento, é possível especificar a codificação dos dados de payload do evento como application/json ou application/protobuf. Os buffers de protocolo (ou
Protobuf) são um mecanismo extensível neutro em relação à linguagem e à plataforma para
serializar dados estruturados. Observações:
- Para origens personalizadas ou provedores terceirizados ou para eventos diretos no Pub/Sub, essa opção de formatação não é compatível.
- Um payload de evento formatado em JSON é maior que um formatado em Protobuf e isso pode afetar a confiabilidade, dependendo do destino do evento e dos limites do tamanho do evento. Saiba mais em Problemas conhecidos.
Destinos alvo, como funções do Cloud Run, Cloud Run e GKE, consomem eventos no formato HTTP. Para destinos do Workflows, o serviço converte o evento em um objeto JSON e o transmite para a execução do fluxo de trabalho como um argumento do ambiente de execução.
O uso de uma maneira padrão para descrever metadados de evento garante consistência, acessibilidade e portabilidade. Os consumidores de eventos podem ler esses eventos diretamente, ou você pode usar as bibliotecas de cliente do Cloud em várias linguagens (incluindo C++, C#, Go, Java, Node.js, PHP, Python e Ruby) para ler e analisar os eventos. Há também um conjunto de SDKs do CloudEvents específicos da linguagem .
A estrutura do corpo HTTP de todos os eventos está disponível no repositório GitHub de eventos do Google Cloud.
Compatibilidade com versões anteriores
O Eventarc considera a adição dos seguintes atributos e campos compatíveis com versões anteriores:
- Atributos de filtragem opcionais ou atributos somente saída
- Campos opcionais para o payload do evento
gatilhos do Eventarc
Os eventos ocorrem independentemente de o destino reagir a eles. Crie uma resposta a um evento com um gatilho. Ele é uma declaração de que você tem interesse em um determinado evento ou grupo de eventos. Ao criar um gatilho, você especifica filtros que permitem capturar e tomar ações sobre esses eventos específicos, incluindo o roteamento de uma fonte de eventos para um destino. Para mais informações, consulte Representação REST de um recurso de gatilho e Provedores e destinos de eventos.
As assinaturas do Pub/Sub criadas para o Eventarc persistem independentemente da atividade e não expiram. Para alterar as propriedades da assinatura, consulte Propriedades de assinatura.
O Eventarc é compatível com gatilhos para esses tipos de evento:
| Eventos de registros de auditoria do Cloud (CAL) | |
|---|---|
| Descrição | Os registros de auditoria do Cloud fornecem registros de auditoria de atividade do administrador e
acesso a dados para cada projeto, pasta e organização do Cloud.
Google Cloud Os serviços gravam entradas nesses registros. É possível criar
filtros para gatilhos do Eventarc usando os serviceName
e methodName valores nos registros de auditoria. Para os valores exatos,
consulte
Google Cloud serviços com registros de auditoria.
Para mais informações, consulte
Determinar filtros de evento para registros de auditoria do Cloud. |
| Tipo de filtro do evento | Os gatilhos d
o Eventarc com type=google.cloud.audit.log.v1.written enviam solicitações para seu
serviço ou fluxo de trabalho quando um registro de auditoria é criado e corresponde aos
critérios de filtro do gatilho. |
| Eventos diretos | |
| Descrição | O Eventarc pode ser acionado por
vários eventos diretos, como uma atualização de um bucket do Cloud Storage, uma atualização de um modelo da Configuração remota do Firebase ou mudanças em
recursos
sobre os Google Cloud serviços.
O Eventarc pode ser acionado por mensagens publicadas nos tópicos do Pub/Sub. Pub/Sub é um barramento de mensagens distribuído globalmente que é escalonado automaticamente conforme necessário. Como o Eventarc pode ser invocado por mensagens em um tópico do Pub/Sub, é possível integrar facilmente o Eventarc a qualquer outro serviço compatível com o Pub/Sub como destino. |
| Tipo de filtro do evento | Os gatilhos do Eventarc com
tipos específicos de filtro de evento enviam solicitações ao serviço ou fluxo de trabalho quando
ocorre um evento que corresponde aos critérios de filtro do gatilho. Por exemplo,
type=google.cloud.storage.object.v1.finalized (quando um objeto
é criado em um bucket do Cloud Storage) ou
type=google.cloud.pubsub.topic.v1.messagePublished (quando uma
mensagem é publicada no tópico do Pub/Sub especificado).
|
Local do gatilho
Google Cloud Os serviços, como o Cloud Storage, podem ser configurados para serem regionais ou multirregionais. Alguns serviços, como o Cloud Build, podem ser configurados globalmente.
O Eventarc permite criar gatilhos regionais ou, em alguns eventos, um gatilho global e receber eventos de todas as regiões. Para ver mais informações, consulte Entender os locais do Eventarc.
Especifique o local do gatilho do Google Cloud Eventarc para corresponder ao local do serviço que está gerando eventos e evite problemas de desempenho e residência de dados causados por um gatilho global.
É possível especificar locais de gatilho usando uma sinalização --location com cada comando.
Para destinos do Cloud Run, se uma sinalização --destination-run-region
não for especificada, presumirá que o serviço está na mesma região que o
acionador. Para mais informações, consulte a
referência da CLI do Google Cloud.
Confiabilidade e entrega
As expectativas de exibição são as seguintes:
- Os eventos que usam os registros de auditoria do Cloud são entregues em menos de um minuto (Embora um gatilho de Registros de auditoria do Cloud seja criado imediatamente, pode levar até dois minutos para que ele se propague e filtre eventos.)
- Os eventos que usam Pub/Sub são enviados em segundos
Não há garantia de entrega pelo método primeiro a entrar, primeiro a sair A ordem estrita prejudicaria os recursos de disponibilidade e escalonabilidade do Eventarc que correspondem aos da camada de transporte, o Cloud Pub/Sub. Para mais informações, consulte Como ordenar mensagens.
A latência e a capacidade de processamento são os melhores esforços. Elas variam com base em vários fatores, incluindo se o gatilho do Eventarc é regional, multirregional ou global; a configuração de um serviço específico; e a carga da rede nos recursos de uma Google Cloud região.
Observe que há cotas e limites de uso que se aplicam geralmente ao Eventarc. Há também cotas e limites de uso específicos do Workflows.
Política de repetição de eventos
As características de nova tentativa do Eventarc correspondem às da camada de transporte, o Cloud Pub/Sub. A duração padrão de retenção de mensagens definida pelo Eventarc é de 24 horas com um atraso de espera exponencial.
É possível atualizar a política de nova tentativa pela assinatura do Pub/Sub associada ao gatilho do Eventarc. Para mais informações, consulte Repetir eventos.
Opcionalmente, para destinos do Cloud Run (incluindo funções do Cloud Run), é possível configurar uma única tentativa de entrega sem novas tentativas. Essa é a configuração padrão quando você usa o Google Cloud console para criar um gatilho do Eventarc para um destino do Cloud Run. Para mais informações, consulte Criar gatilhos com o Eventarc.
Observabilidade
O Google Cloud Observability oferece ferramentas de monitoramento, geração de registros e diagnóstico. Essas ferramentas podem ajudar você a monitorar e analisar a atividade e o crescimento do Eventarc e entender o comportamento, a integridade e o desempenho dos aplicativos. Para mais informações, consulte Observabilidade no Eventarc.
Registros detalhados do Eventarc, Cloud Run, Cloud Run functions, GKE, Pub/Sub e Workflows estão disponíveis nos Registros de auditoria do Cloud.
Recuperação de desastres
Aproveite as zonas e regiões para ter confiabilidade em caso de interrupções. Para saber mais sobre como garantir que o objetivo do tempo de recuperação (RTO, na sigla em inglês) e o objetivo do ponto de recuperação (RPO, na sigla em inglês) sejam atendidos para tempos de backup e recuperação ao usar o Eventarc, consulte Como arquitetar a recuperação de desastres para infraestrutura em nuvem falhas temporárias.
Padrões de compliance
O Eventarc Standard está em conformidade com certificações e padrões específicos certificações e padrões. Para evitar o uso de recursos não compatíveis do Eventarc Advanced, crie uma política personalizada da organização que desative os recursos do Eventarc Advanced. Para mais informações, consulte Desativar recursos do Eventarc Advanced.
A seguir
- Saiba mais sobre o processamento de eventos sem servidor
- Teste o Codelab
- Criar um gatilho para um provedor, tipo de evento e destino específicos
- Resolver problemas