Présentation d'Eventarc

Eventarc vous permet de créer des architectures basées sur des événements, sans avoir à mettre en œuvre, à personnaliser ou à gérer l'infrastructure sous-jacente. Il offre une solution standardisée pour gérer le flux des changements d'état, appelés événements, entre les microservices découplés. Eventarc achemine ces événements vers Cloud Run tout en gérant la diffusion, la sécurité, les autorisations, l'observabilité et le traitement des erreurs.

Architecture Eventarc

Vous pouvez gérer Eventarc à l'aide de Google Cloud Console (en utilisant Cloud Run), de la ligne de commande (en utilisant le SDK Cloud) ou de l'API Eventarc.

Principaux cas d'utilisation

Eventarc est compatible avec de nombreux cas d'utilisation pour les applications exécutées sur Cloud Run. Voici quelques exemples :

Configurer et surveiller
  • Configuration du système : installez un outil de gestion de la configuration sur une nouvelle VM dès son démarrage.
  • Solution automatique : détectez si un service ne répond pas correctement et redémarrez-le automatiquement.
  • Alertes et notifications : surveillez le solde d'un portefeuille de cryptomonnaie et déclenchez des notifications.
Harmoniser
  • Inscriptions au répertoire : activez le badge d'un employé dès son entrée dans l'entreprise.
  • Synchronisation des données : déclenchez un workflow de comptabilité lorsqu'un prospect est converti dans un système CRM.
  • Ajout d'étiquettes aux ressources : étiquetez et identifiez le créateur d'une VM lors de sa création.
Analyser
  • Analyse des sentiments : utilisez l'API Cloud Natural Language pour entraîner et déployer un modèle de ML qui associe un score de satisfaction à une demande adressée au service client dès qu'elle est terminée.
  • Retouche et analyse d'images : supprimez l'arrière-plan et classez automatiquement une image lorsqu'un revendeur l'ajoute à un magasin d'objets.

Événements

Un événement est un enregistrement de données exprimant une occurrence et son contexte. Un événement correspond à une unité discrète de communication, indépendante des autres événements. Par exemple, il peut s'agir d'une modification apportée aux données d'une base de données, de l'ajout d'un fichier à un système de stockage ou d'une tâche planifiée.

Pour obtenir la liste des événements compatibles avec Eventarc, consultez la section Événements compatibles avec Eventarc.

Sources d'événements

Les événements sont acheminés d'un producteur d'événements (la source) aux consommateurs intéressés. Le routage est effectué en fonction des informations contenues dans l'événement, mais un événement n'identifie pas de destination de routage spécifique. Actuellement, Eventarc accepte les événements provenant des sources suivantes :

  • Plus de 90 sources Google Cloud. Les événements provenant de ces sources sont soit envoyés directement (Cloud Storage), soit envoyés via des entrées Cloud Audit Logs, et utilisent Events Core et Pub/Sub comme couche transport.
  • Sources personnalisées. Les événements issus d'applications personnalisées utilisent Pub/Sub pour envoyer des messages de notification d'événements.

Pour déterminer la meilleure façon d'acheminer les événements vers un service Cloud Run, consultez la page Options de routage des événements.

Cibles d'événements

Les événements sont acheminés vers une destination spécifique (la cible), appelée "récepteur d'événements" (ou consommateur). Actuellement, Cloud Run est le seul récepteur d'événements d'Eventarc. Apprenez à créer un service récepteur d'événements pouvant être déployé sur Cloud Run.

Format des événements et bibliothèques

Eventarc envoie les événements, quelle que soit leur source, au service Cloud Run cible dans un format CloudEvents via une requête HTTP portant sur du contenu binaire. CloudEvents est une spécification décrivant les métadonnées d'événements de manière courante, encouragée par la Cloud Native Computing Foundation et organisée par son groupe de travail axé sur le sans serveur.

L'utilisation d'une méthode standard pour décrire les métadonnées d'événements garantit la cohérence, l'accessibilité et la portabilité. Les consommateurs d'événements peuvent lire ces événements directement. Vous pouvez également utiliser les SDK et les bibliothèques Google CloudEvents dans différents langages (y compris C#, Go, Java, Node.js et Python) pour lire et analyser les événements :

Bibliothèques d'analyse Eventarc

La structure du corps HTTP de tous les événements est disponible dans le dépôt GitHub Google CloudEvents. Pour en savoir plus, consultez la page Développer des récepteurs d'événements.

Déclencheurs Eventarc

Des événements se produisent, que vous choisissiez d'y répondre ou non. Vous pouvez créer une réponse à un événement avec un déclencheur. Un déclencheur vous permet d'indiquer que vous souhaitez surveiller un ou plusieurs événements, et associer un service Cloud Run à un déclencheur pour capturer des événements spécifiques et agir en conséquence. Pour en savoir plus, consultez les pages Créer un déclencheur et Représentation REST d'une ressource de déclencheur.

Eventarc est compatible avec les types de déclencheurs suivants :

Événements Cloud Audit Logging (CAL)
DescriptionCloud Audit Logging fournit des journaux d'audit Cloud pour les activités d'administration et l'accès aux données pour chaque projet, dossier et organisation Cloud. Les services Google Cloud écrivent des entrées dans ces journaux. Cette liste d'événements compatibles inclut un répertoire de valeurs serviceName et methodName.
Type de filtre d'événementLes déclencheurs Eventarc avec type=google.cloud.audit.log.v1.written envoient des requêtes à votre service Cloud Run lorsqu'un journal d'audit est créé et qu'il correspond aux critères de filtre du déclencheur.
Événements Cloud Pub/Sub
DescriptionEventarc peut être déclenché par les messages publiés dans les sujets Pub/Sub. Pub/Sub est un service de messagerie distribué dans le monde entier qui effectue un scaling automatique en fonction des besoins. Eventarc pouvant être appelé par des messages sur un sujet Pub/Sub, vous pouvez facilement l'intégrer à tout autre service acceptant Pub/Sub comme destination.
Type de filtre d'événementLes déclencheurs Eventarc avec type=google.cloud.pubsub.topic.v1.messagePublished envoient des requêtes à votre service Cloud Run lorsqu'un message est publié dans le sujet du déclencheur spécifié.
Événements Cloud Storage
DescriptionEventarc peut être déclenché par divers événements ayant lieu au sein d'un bucket Cloud Storage : création, suppression et archivage d'objets, ainsi que mises à jour de métadonnées.
Type de filtre d'événementLes déclencheurs Eventarc avec type=google.cloud.storage.object.v1.finalized, type=google.cloud.storage.object.v1.archived, type=google.cloud.storage.object.v1.deleted ou type=google.cloud.storage.object.v1.metadataUpdated envoient des requêtes à votre service Cloud  un lorsqu'un événement qui correspond aux critères de filtrage du déclencheur se produit.

Emplacement du déclencheur

Les services Google Cloud, tels que Cloud Storage, peuvent être configurés pour être régionaux ou multirégionaux. Certains services, tels que Cloud Build, peuvent être configurés à l'échelle mondiale.

Eventarc vous permet de créer des déclencheurs régionaux ou vous pouvez créer un déclencheur global (applicable uniquement aux déclencheurs Cloud Audit Logs) et recevoir des événements de toutes les régions. Pour en savoir plus, consultez la page Emplacements Eventarc.

Vous devez spécifier l'emplacement du déclencheur Eventarc pour qu'il corresponde à celui du service Google Cloud qui génère des événements. Cela évite les problèmes de performances et de résidence des données occasionnés par un déclencheur global.

Vous pouvez spécifier des emplacements de déclencheur en ajoutant une option --location à chaque commande. Si l'option --destination-run-region n'est pas spécifiée, le service est supposé se trouver dans la même région que le déclencheur. Pour en savoir plus, consultez la documentation de référence sur l'outil de ligne de commande gcloud.

Fiabilité et diffusion

Les attentes en termes de diffusion sont les suivantes :

  • Les événements utilisant les journaux d'audit Cloud sont diffusés en moins d'une minute.
  • Les événements utilisant Pub/Sub sont diffusés en quelques secondes.

Il n'existe pas de fonctionnalité de diffusion prioritaire "premier entré, premier sorti". Notez qu'un ordonnancement strict irait à l'encontre des garanties de disponibilité et d'évolutivité offertes par Eventarc, qui correspondent à celles de sa couche de transport, Cloud Pub/Sub. Pour en savoir plus, consultez la page Trier des messages.

La latence et le débit sont les meilleurs possible. Ils varient en fonction de plusieurs facteurs, y compris si le déclencheur Eventarc est régional, multirégional ou mondial, la configuration d'un service particulier et la charge réseau sur les ressources dans une région Google Cloud.

Notez que des quotas et limites d'utilisation s'appliquent à Eventarc lorsqu'il est utilisé avec Cloud Run.

Stratégie de nouvelle tentative pour les événements

Lorsqu'une publication d'événement échoue, elle est automatiquement relancée, sauf en cas d'erreurs qui ne justifient pas de nouvelles tentatives. Cela correspond aux caractéristiques de nouvelles tentatives de la couche de transport d'Eventarc, Cloud Pub/Sub. Si le service Cloud Run n'accuse pas réception des messages, Pub/Sub conserve les événements pendant sept jours par défaut et tente à nouveau d'envoyer des événements à la cible. Pour en savoir plus, consultez la section Limites de ressources dans Pub/Sub.

Observabilité

Des journaux détaillés sont disponibles dans les services suivants :

Étapes suivantes