View a markdown version of this page

Utilisation EventBridge avec les pipelines Image Builder - EC2 Image Builder

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation EventBridge avec les pipelines Image Builder

AWS et les services partenaires diffusent les événements sur les bus EventBridge événementiels Amazon en temps quasi réel. Vous pouvez également envoyer vos propres événements personnalisés. Les bus événementiels utilisent des règles pour acheminer chaque événement vers une ou plusieurs cibles.

Image Builder fonctionne EventBridge dans deux directions indépendantes :

Pour plus d'informations sur les événements envoyés par Image Builder et les champs de chaque événement, consultezMessages d'événements envoyés par Image Builder.

Note

Les bus événementiels le sont Region-specific. Une règle et les ressources qu'elle invoque se trouvent généralement dans la même région ; pour effectuer un routage entre les régions, ciblez un bus d'événements dans la région de destination. Image Builder publie ses événements sur le bus d'événements par défaut de la région où s'exécute la génération.

EventBridge termes

Les termes suivants vous aident à comprendre comment EventBridge s'intègre à vos pipelines Image Builder.

Événement

Décrit une modification d'environnement susceptible d'affecter une ou plusieurs ressources de l'application. L'environnement peut être un AWS environnement, un service ou une application partenaire SaaS, ou l'une de vos applications ou services. Vous pouvez également configurer des événements planifiés sur une chronologie.

Bus d’événement

Un pipeline qui reçoit des données d'événements provenant d'applications et de services.

Source

Le service ou l'application qui a envoyé l'événement au bus de l'événement.

Cible

Ressource ou point de terminaison EventBridge invoqué lorsqu'il correspond à une règle, fournissant les données de l'événement à la cible.

Règle

Une règle correspond à des événements entrants et les envoie vers des cibles pour être traités. Une seule règle peut envoyer un événement à plusieurs cibles, qui peuvent ensuite être exécutées en parallèle. Les règles sont basées soit sur un modèle d’événement, soit sur un calendrier.

Modèle

Un modèle d'événement définit la structure de l'événement et les champs auxquels une règle correspond afin de lancer l'action cible.

Planning

Les règles de planification exécutent une action selon un calendrier, comme l'exécution d'un pipeline Image Builder pour actualiser une image tous les trimestres. Il existe deux types d'expressions de planification :

  • Expressions Cron  : faites correspondre des critères de planification spécifiques à l'aide de la syntaxe cron qui peut définir des critères simples ; par exemple, une exécution hebdomadaire un jour spécifique. Vous pouvez également définir des critères plus complexes, comme une diffusion trimestrielle le cinquième jour du mois, entre 2 h et 4 h.

  • Expressions de taux  : spécifiez un intervalle régulier lorsque la cible est invoquée, par exemple toutes les 12 heures.

Afficher EventBridge les règles de votre pipeline Image Builder

L'onglet EventBridge Règles de la page détaillée des pipelines d'images d'Image Builder affiche les bus d' EventBridge événements auxquels votre compte a accès, ainsi que les règles du bus d'événements sélectionné qui s'appliquent au pipeline actuel. Cet onglet renvoie également directement à la EventBridge console permettant de créer de nouvelles ressources.

Actions liées à la EventBridge console
  • Créer un bus événementiel

  • Créer une règle

Pour en savoir plus EventBridge, consultez les rubriques suivantes du guide de EventBridge l'utilisateur Amazon.

Déclenchez la création d'un pipeline selon un calendrier

Définissez un pipeline Image Builder comme cible d'une règle de EventBridge planification pour actualiser une image à une cadence régulière. L'exemple suivant crée une règle qui lance la création d'un pipeline tous les 90 jours.

Note

Un pipeline peut également comporter son propre calendrier intégré (une expression cron ou rate stockée sur le pipeline). Ce calendrier est géré par Image Builder et est distinct de toute EventBridge règle :

  • Utilisez le calendrier du pipeline pour une reconstruction récurrente simple. Il peut également gérer les builds à partir des mises à jour des dépendances et désactiver automatiquement un pipeline défaillant. Consultez Schedule la référence de l'API EC2 Image Builder.

  • Utilisez une EventBridge règle pour démarrer un build à partir d'un modèle d'événement ou pour étendre un déclencheur à plusieurs cibles.

Console de gestion AWS
  1. Ouvrez la console EC2 Image Builder à https://console.aws.amazon.com/imagebuilder/ l'adresse.

  2. Pour consulter la liste des pipelines d'images créés sous votre compte, choisissez Pipelines d'images dans le volet de navigation.

    Note

    La liste des pipelines d'images inclut un indicateur pour le type d'image de sortie créée par le pipeline : AMI ouDocker.

  3. Pour afficher les détails ou modifier un pipeline, cliquez sur le lien Nom du pipeline. Cela ouvre la vue détaillée du pipeline.

    Note

    Vous pouvez également cocher la case à côté du nom du pipeline, puis choisir Afficher les détails.

  4. Ouvrez l'onglet EventBridge Règles.

  5. Conservez le bus d'événements par défaut qui est présélectionné dans le panneau Bus d'événements.

  6. Choisissez Créer une règle. Cela vous amène à la page Créer une règle dans la EventBridge console Amazon.

  7. Saisissez un nom et une description pour la règle. Le nom de la règle doit être unique dans le bus d'événements de la région sélectionnée.

  8. Dans le panneau Définir le modèle, choisissez l'option Planifier. Cela élargit le panneau, avec le tarif fixe pour chaque option sélectionnée.

  9. Entrez 90 dans la première case et sélectionnez Jours dans la liste déroulante.

  10. Effectuez les actions suivantes dans le panneau Sélectionner les cibles :

    1. Sélectionnez EC2 Image Builder dans la liste déroulante Cible.

    2. Pour appliquer la règle à un pipeline Image Builder, sélectionnez le pipeline cible dans la liste déroulante Image Pipeline.

    3. EventBridge a besoin d'une autorisation pour lancer une compilation pour le pipeline sélectionné. Pour cet exemple, conservez l'option par défaut Créer un nouveau rôle pour cette ressource spécifique.

    4. Sélectionnez Ajouter une cible.

  11. Sélectionnez Create (Créer).

Note

La EventBridge console actuelle peut créer des planifications via EventBridge Scheduler, et les libellés et les étapes exacts peuvent changer au fil du temps. Le guide de EventBridge l'utilisateur Amazon lié fait autorité pour l'expérience de console actuelle.

AWS CLI

Ces étapes créent une règle de planification qui lance la construction d'un pipeline tous les 90 jours. EventBridge a besoin d'un rôle IAM qu'il peut assumer pour faire appel imagebuilder:StartImagePipelineExecution à votre pipeline.

  1. Créez une règle avec une expression de taux :

    aws events put-rule \ --name refresh-image-every-90-days \ --schedule-expression "rate(90 days)"
  2. Créez un rôle IAM qui EventBridge peut assumer, avec cette politique de confiance :

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

    Joignez une politique d'autorisations qui permet au pipeline de démarrer :

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "imagebuilder:StartImagePipelineExecution", "Resource": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline" }] }
  3. Ajoutez le pipeline comme cible de la règle, en faisant référence au rôle de l'étape précédente :

    aws events put-targets \ --rule refresh-image-every-90-days \ --targets '[{ "Id": "1", "Arn": "arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/my-pipeline", "RoleArn": "arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole" }]'
  4. Vérifiez que la cible est attachée :

    aws events list-targets-by-rule --rule refresh-image-every-90-days
Note

Pour en savoir plus sur les paramètres des règles d'expression de taux qui ne sont pas abordés dans cet exemple, consultez la section Expressions de taux dans le guide de EventBridge l'utilisateur Amazon.

Déclencher la création d'un pipeline à partir d'un modèle d'événement

Au lieu d'un calendrier, vous pouvez démarrer la création d'un pipeline lorsqu'un événement correspond à un modèle. Créez une règle avec un modèle d'événement, puis ajoutez votre pipeline comme cible (avec le même rôle IAM décrit dansDéclenchez la création d'un pipeline selon un calendrier).

L'exemple suivant démarre une génération chaque fois qu'une image de base spécifique devient, par exemple, AVAILABLE pour enchaîner une génération d'image dépendante une fois son image de base terminée. Le resources préfixe étend la règle à l'image de base afin qu'elle corresponde uniquement à cette image, et non à la propre sortie du pipeline dépendant :

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE"] } }, "resources": [{ "prefix": "arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/" }] }
Important

Étendez le modèle d'événement à l'image de base, comme le montre le resources préfixe de cet exemple. Un modèle qui correspond à chaque AVAILABLE image du compte correspond également à l'image de sortie du pipeline dépendant, ce qui redémarre le pipeline et peut créer une boucle de construction sans fin. Filtrez en fonction du nom de l'image de base ou du préfixe ARN spécifique afin que la règle corresponde uniquement à l'image souhaitée.

Console de gestion AWS
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Choisissez Règles, puis Créer une règle. Conservez le bus d'événements par défaut.

  3. Entrez un nom et une description. Sous Type de règle, choisissez Règle avec un modèle d'événement.

  4. Pour la source de l'événement, choisissez Autre et collez le modèle d'événement ci-dessus dans la zone Modèle d'événement.

  5. Dans le panneau Sélectionner les cibles, faites votre choix EC2 Image Builder dans la liste déroulante Cible, puis choisissez le pipeline à créer dans la liste déroulante Image Pipeline.

  6. EventBridge a besoin d'une autorisation pour démarrer le pipeline. Conservez l'option par défaut pour Créer un nouveau rôle pour cette ressource spécifique.

  7. Choisissez Créer une règle.

AWS CLI

Créez la règle et ajoutez le pipeline comme cible :

aws events put-rule \ --name rebuild-on-base-available \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE"]}},"resources":[{"prefix":"arn:aws:imagebuilder:us-west-2:111122223333:image/my-base-image/"}]}' aws events put-targets \ --rule rebuild-on-base-available \ --targets '[{"Id":"1","Arn":"arn:aws:imagebuilder:us-west-2:111122223333:image-pipeline/dependent-pipeline","RoleArn":"arn:aws:iam::111122223333:role/EventBridgeImageBuilderRole"}]'

Pour les événements que vous pouvez associer et leurs champs, consultezMessages d'événements envoyés par Image Builder.

Réagissez aux événements envoyés par Image Builder

Image Builder publie des événements sur le bus d'événements par défaut lorsque vos ressources atteignent des points importants, par exemple, lorsqu'une image change d'état, qu'une numérisation est terminée, qu'une étape du flux de travail est interrompue pour la saisie ou qu'un pipeline est automatiquement désactivé. Vous pouvez associer ces événements à une règle et les acheminer vers une cible pour démarrer votre propre automatisation. Les modèles courants incluent :

  • Avertissez une équipe via une rubrique Amazon SNS lorsqu'une image devient AVAILABLE ouFAILED.

  • Appelez une fonction Lambda pour enregistrer une nouvelle AMI dans un magasin de paramètres, démarrer des tests de conformité externes ou mettre à jour un pipeline de déploiement.

  • Alerte sur les résultats de sécurité lorsqu'un scan signale des CVE critiques.

  • Mettez en place un flux de travail d'approbation lorsqu'une étape WaitForAction du flux de travail interrompt une création.

Pour agir sur un événement envoyé par Image Builder, créez une règle dont le modèle d'événement correspond à l'événement source (aws.imagebuilder) et detail-type qui restreint éventuellement les champs qu'il contientdetail. Ajoutez ensuite la cible qui exécute votre automatisation.

Exemple : Notifier lorsque l'image est terminée (AVAILABLEouFAILED)

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder Image State Change"], "detail": { "state": { "status": ["AVAILABLE", "FAILED"] } } }

Exemple : alerte uniquement lorsqu'un scan détecte des CVE critiques

Utilisez un comparateur numérique afin que les scans nets ne déclenchent pas la règle :

{ "source": ["aws.imagebuilder"], "detail-type": ["EC2 Image Builder CVE Detected"], "detail": { "finding-severity-counts": { "critical": [{ "numeric": [">", 0] }] } } }
Console de gestion AWS
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Choisissez Règles, puis Créer une règle. Conservez le bus d'événements par défaut.

  3. Entrez un nom et une description. Sous Type de règle, choisissez Règle avec un modèle d'événement.

  4. Pour la source de l'événement, choisissez Autre et collez l'un des modèles d'événements ci-dessus dans la zone Modèle d'événement.

  5. Choisissez votre cible, par exemple une rubrique Amazon SNS ou une fonction Lambda, puis définissez les paramètres de la cible.

  6. Choisissez Créer une règle.

AWS CLI

Créez la règle et envoyez les événements correspondants à une rubrique Amazon SNS :

aws events put-rule \ --name image-available-or-failed \ --event-pattern '{"source":["aws.imagebuilder"],"detail-type":["EC2 Image Builder Image State Change"],"detail":{"state":{"status":["AVAILABLE","FAILED"]}}}' aws events put-targets \ --rule image-available-or-failed \ --targets '[{"Id":"1","Arn":"arn:aws:sns:us-west-2:111122223333:image-status"}]'

EventBridge a également besoin d'une autorisation pour envoyer des événements à votre cible. Pour plus d'informations sur les autorisations requises par chaque type de cible, consultez les sections Autorisations pour l'envoi d'événements aux cibles et Utilisation de politiques basées sur les ressources pour Amazon EventBridge dans le Guide de l' EventBridge utilisateur Amazon.

Note

Lorsque vous faites correspondre l'EC2 Image Builder Workflow Step Waitingévénement, votre cible peut appeler SendWorkflowStepAction avec le workflow-step-execution-id nom de l'événement et un action RESUME ouSTOP. Consultez WaitForAction.