O Eventarc permite-lhe criar arquiteturas orientadas por eventos sem ter de implementar, personalizar nem manter a infraestrutura subjacente.
O Eventarc é oferecido em duas edições: Eventarc Advanced e Eventarc Standard. Ambas as edições oferecem uma solução de eventos escalável, sem servidor e totalmente gerida que lhe permite encaminhar eventos de forma assíncrona de origens para destinos. Para mais informações, consulte o artigo Escolha o Eventarc Advanced ou o Eventarc Standard.
O Eventarc Standard oferece uma solução padronizada para gerir o fluxo de alterações de estado, denominadas eventos, entre microsserviços separados. Quando acionados, o Eventarc Standard encaminha estes eventos para vários destinos (neste documento, consulte Destinos de eventos), ao mesmo tempo que gere a entrega, a segurança, a autorização, a observabilidade e o processamento de erros por si.
Pode gerir o Eventarc a partir da Google Cloud consola, da linha de comandos através da CLI gcloud ou através da API Eventarc.
1 Eventos de fornecedores Google são enviados diretamente da origem (por exemplo, o Cloud Storage) ou através de entradas dos registos de auditoria do Google Cloud e usam o Pub/Sub como a camada de transporte. Os eventos de origens Pub/Sub podem usar um tópico Pub/Sub existente ou o Eventarc cria automaticamente um tópico e gere-o por si.
2 Eventos para destinos do Google Kubernetes Engine (GKE), incluindo serviços Knative em execução num cluster do GKE, usam o encaminhador de eventos do Eventarc para obter novos eventos do Pub/Sub e encaminhá-los para o destino. Este componente funciona como um mediador entre a camada de transporte do Pub/Sub e o serviço de destino. Funciona em serviços existentes e também suporta serviços de sinalização (incluindo os que não estão expostos fora do cluster totalmente gerido), ao mesmo tempo que simplifica a configuração e a manutenção. Tenha em atenção que o ciclo de vida do encaminhador de eventos é gerido pelo Eventarc e, se eliminar acidentalmente o encaminhador de eventos, o Eventarc restaura este componente.
3 Os eventos para uma execução do fluxo de trabalho são transformados e transmitidos ao fluxo de trabalho como argumentos de tempo de execução. Os fluxos de trabalho podem combinar e orquestrar Google Cloud e serviços de API baseados em HTTP numa ordem que define.
4 Todas as funções acionadas por eventos nas funções do Cloud Run usam acionadores do Eventarc para fornecer eventos. Pode configurar acionadores do Eventarc quando implementa uma função do Cloud Run através da interface de funções do Cloud Run.
Principais exemplos de utilização
O Eventarc suporta muitos exemplos de utilização para aplicações de destino. Alguns exemplos:
Configure e monitorize |
|
Harmonize |
|
Analisar |
|
Eventos
Um evento é um registo de dados que expressa uma ocorrência e o respetivo contexto. Um evento é uma unidade discreta de comunicação, independente de outros eventos. Por exemplo, um evento pode indicar uma alteração aos dados numa base de dados, um ficheiro adicionado a um sistema de armazenamento ou uma tarefa agendada.
Consulte os tipos de eventos Google suportados pelo Eventarc.
Fornecedores de eventos
Os eventos são encaminhados de um fornecedor de eventos (a origem) para os consumidores de eventos interessados. O encaminhamento é realizado com base nas informações contidas no evento, mas um evento não identifica um destino de encaminhamento específico. O Eventarc suporta eventos de mais de 130 fornecedores Google. Estes fornecedores enviam eventos (por exemplo, uma atualização a um objeto num contentor do Cloud Storage ou uma mensagem publicada num tópico do Pub/Sub) diretamente a partir da origem ou através de entradas dos registos de auditoria do Cloud.
Destinos de eventos
Os eventos são encaminhados para um destino específico (o destino) conhecido como o recetor de eventos (ou consumidor) através de subscrições push do Pub/Sub.
Cloud Run
Saiba como criar um serviço de receção de eventos que pode ser implementado no Cloud Run.
Para determinar a melhor forma de encaminhar eventos para um serviço do Cloud Run, consulte Rotas de eventos.
Funções do Cloud Run
Todas as funções orientadas por eventos nas funções do Cloud Run usam acionadores do Eventarc para fornecer eventos. Um acionador do Eventarc permite que uma função seja acionada por qualquer tipo de evento suportado pelo Eventarc. Pode configurar acionadores do Eventarc quando implementa uma função do Cloud Run através da interface de funções do Cloud Run.
GKE
O Eventarc suporta a criação de acionadores que segmentam serviços do Google Kubernetes Engine (GKE). Isto inclui os pontos finais públicos de serviços privados e públicos executados num cluster do GKE.
Para que o Eventarc possa segmentar e gerir serviços num determinado cluster, tem de conceder à conta de serviço do Eventarc todas as autorizações necessárias.
Tem de ativar a federação de identidades da carga de trabalho para o GKE no cluster do GKE no qual o serviço de destino está a ser executado. A Workload Identity Federation para o GKE é necessária para configurar corretamente o encaminhador de eventos e é a forma recomendada de aceder aos serviços a partir de aplicações em execução no GKE devido às suas propriedades de segurança e capacidade de gestão melhoradas. Google Cloud Para mais informações, consulte o artigo Ative a identidade da carga de trabalho.
Pontos finais HTTP internos numa rede de VPC
Pode configurar o encaminhamento de eventos para um ponto final HTTP interno numa rede de nuvem virtual privada (VPC). Para configurar o acionador, também tem de fornecer um ID de anexo de rede. Para mais informações, consulte o artigo Encaminhe eventos para um ponto final HTTP interno numa rede VPC.
Workflows
Pode acionar a execução de um fluxo de trabalho. Os fluxos de trabalho requerem um email de conta de serviço do IAM que o seu acionador do Eventarc vai usar para invocar as execuções do fluxo de trabalho. Recomendamos que use uma conta de serviço com o menor número de privilégios necessários para aceder aos recursos necessários. Para mais informações, consulte o artigo Crie e faça a gestão de contas de serviço.
Formato de evento e bibliotecas
O Eventarc envia eventos, independentemente do fornecedor, para o destino num formato CloudEvents através de um pedido HTTP no modo de conteúdo binário. O CloudEvents é uma especificação para descrever metadados de eventos de forma comum.
Consoante o fornecedor de eventos, pode especificar a codificação dos dados de payload do evento como application/json
ou application/protobuf
. Os Protocol Buffers (ou Protobuf) são um mecanismo extensível independente da linguagem e da plataforma para serializar dados estruturados. Tenha em conta o seguinte:
- Para origens personalizadas ou fornecedores externos, ou para eventos diretos do Pub/Sub, esta opção de formatação não é suportada.
- Uma carga útil de eventos formatada em JSON é maior do que uma formatada em Protobuf e isto pode afetar a fiabilidade, consoante o destino do evento e os respetivos limites de tamanho do evento. Para mais informações, consulte a secção Problemas conhecidos.
Os destinos, como as funções do Cloud Run, o Cloud Run e o GKE, consomem eventos no formato HTTP. Para destinos de fluxos de trabalho, o serviço Workflows converte o evento num objeto JSON e passa o evento para a execução do fluxo de trabalho como um argumento de tempo de execução.
A utilização de uma forma padrão para descrever os metadados de eventos garante a consistência, a acessibilidade e a portabilidade. Os consumidores de eventos podem ler estes eventos diretamente ou pode usar as bibliotecas cliente da Google Cloud em vários idiomas (incluindo C++, C#, Go, Java, Node.js, PHP, Python e Ruby) para ler e analisar os eventos. Também existe um conjunto de SDKs CloudEvents específicos do idioma.
A estrutura do corpo HTTP para todos os eventos está disponível no repositório do GitHub do Google CloudEvents.
Retrocompatibilidade
O Eventarc considera a adição dos seguintes atributos e campos retrocompatíveis:
- Atributos de filtragem opcionais ou atributos apenas de saída
- Campos opcionais para o payload do evento
Acionadores do Eventarc
Os eventos ocorrem independentemente de um destino reagir ou não a eles. Cria uma resposta a um evento com um acionador. Um acionador é uma declaração de que tem interesse num determinado evento ou conjunto de eventos. Quando cria um acionador, especifica filtros para o acionador que lhe permitem capturar e agir nesses eventos específicos, incluindo o respetivo encaminhamento de uma origem de eventos para um destino específico. Para mais informações, consulte a representação REST de um recurso de acionador e os fornecedores e destinos de eventos.
Tenha em atenção que as subscrições do Pub/Sub criadas para o Eventarc persistem independentemente da atividade e não expiram. Para alterar as propriedades da subscrição, consulte o artigo Propriedades da subscrição.
O Eventarc suporta acionadores para estes tipos de eventos:
Eventos dos registos de auditoria da nuvem (CAL) | |
---|---|
Descrição | Os registos de auditoria do Cloud fornecem registos de auditoria da atividade do administrador e
de acesso aos dados para cada projeto, pasta e organização do Cloud.
Os Google Cloud serviços escrevem entradas nestes registos. Pode criar
filtros para acionadores do Eventarc através dos valores serviceName
e methodName nos registos de auditoria. Para ver os valores exatos,
consulte os
Google Cloud serviços com registos de auditoria.
Para mais informações, consulte o artigo
Determine os filtros de eventos para os registos de auditoria do Cloud. |
Tipo de filtro de eventos | Os acionadores do Eventarc com
type=google.cloud.audit.log.v1.written enviam pedidos para o seu
serviço ou fluxo de trabalho quando é criado um registo de auditoria que corresponde aos
critérios de filtro do acionador. |
Eventos diretos | |
Descrição | O Eventarc pode ser acionado por
vários eventos diretos, como uma atualização a um contentor do Cloud Storage, uma atualização a um modelo do Firebase Remote Config ou alterações aos
recursos
nos Google Cloud serviços.
O Eventarc também pode ser acionado por mensagens publicadas em tópicos do Pub/Sub. O Pub/Sub é um barramento de mensagens distribuído globalmente que é dimensionado automaticamente conforme necessário. Uma vez que o Eventarc pode ser invocado por mensagens num tópico do Pub/Sub, pode integrar o Eventarc com qualquer outro serviço que suporte o Pub/Sub como destino. |
Tipo de filtro de eventos | Os acionadores do Eventarc com tipos de filtros de eventos específicos enviam pedidos ao seu serviço ou fluxo de trabalho quando ocorre um evento que corresponde aos critérios de filtro do acionador; por exemplo, type=google.cloud.storage.object.v1.finalized (quando um objeto é criado num contentor do Cloud Storage) ou type=google.cloud.pubsub.topic.v1.messagePublished (quando uma mensagem é publicada no tópico do Pub/Sub especificado).
|
Localização do acionador
Google Cloud 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-lhe criar acionadores regionais ou, para alguns eventos, pode criar um acionador global e receber eventos de todas as regiões. Para mais informações, consulte o artigo Compreenda as localizações do Eventarc.
Deve especificar a localização do acionador do Eventarc para corresponder à localização do serviço Google Cloudque está a gerar eventos e evitar problemas de desempenho e residência de dados causados por um acionador global.
Pode especificar localizações de acionamento através de uma flag --location
com cada comando.
Para destinos do Cloud Run, se não for especificada uma flag --destination-run-region
, assume-se que o serviço está na mesma região que o acionador. Para mais informações, consulte a
referência da CLI Google Cloud.
Fiabilidade e entrega
As expetativas de entrega são as seguintes:
- Os eventos que usam os registos de auditoria do Google Cloud são entregues em menos de um minuto. (Tenha em atenção que, embora um acionador dos registos de auditoria do Google Cloud seja criado imediatamente, pode demorar até dois minutos para que um acionador propague e filtre eventos.)
- Os eventos que usam o Pub/Sub são entregues em segundos.
Não existe garantia de entrega por ordem de chegada. Tenha em atenção que ter uma ordenação rigorosa prejudicaria a disponibilidade e as funcionalidades de escalabilidade do Eventarc, que correspondem às da respetiva camada de transporte, o Cloud Pub/Sub. Para mais informações, consulte o artigo Ordenar mensagens.
A latência e a taxa de transferência são feitas com base no melhor esforço. Variam com base em vários fatores, incluindo se o acionador do Eventarc é regional, multirregional ou global; a configuração de um serviço específico; e a carga de rede nos recursos numa região. Google Cloud
Tenha em atenção que existem quotas e limites de utilização que se aplicam geralmente ao Eventarc. Também existem limites e quotas de utilização específicos dos fluxos de trabalho.
Política de repetição de eventos
As caraterísticas de repetição do Eventarc correspondem às da respetiva camada de transporte, o Cloud Pub/Sub. A duração predefinida da retenção de mensagens definida pelo Eventarc é de 24 horas com um atraso de recuo exponencial.
Pode atualizar a política de repetição através da subscrição do Pub/Sub associada ao acionador do Eventarc. Para mais informações, consulte o artigo Tentar novamente eventos.
Observabilidade
O Google Cloud Observability oferece ferramentas de monitorização, registo e diagnóstico. Estas ferramentas podem ajudar a monitorizar e analisar a atividade e o crescimento do Eventarc, e compreender o comportamento, o estado e o desempenho das suas aplicações. Para mais informações, consulte Observabilidade no Eventarc.
Os registos detalhados do Eventarc, Cloud Run, funções do Cloud Run, GKE, Pub/Sub e workflows estão disponíveis nos registos de auditoria da nuvem.
Recuperação de desastres
Pode tirar partido das zonas e das regiões para alcançar a fiabilidade em caso de interrupções. Para saber como garantir que os objetivos de tempo de recuperação (RTO) e de ponto de recuperação (RPO) são cumpridos para os tempos de cópia de segurança e recuperação quando usar o Eventarc, consulte o artigo Arquitetar a recuperação de desastres para interrupções da infraestrutura na nuvem.
Normas de conformidade
O Eventarc Standard está em conformidade com certificações e normas específicas. Para evitar a utilização de recursos avançados do Eventarc não conformes, pode criar uma política de organização personalizada que desative os recursos avançados do Eventarc. Para mais informações, consulte o artigo Desative os recursos avançados do Eventarc.
O que se segue?
- Saiba mais acerca do processamento de eventos sem servidor
- Experimente o Codelab
- Crie um acionador para um fornecedor, um tipo de evento e um destino específicos
- Resolva problemas