Création d'une EventBridge règle pour une ECR source Amazon (AWS CloudFormation modèle) - AWS CodePipeline

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.

Création d'une EventBridge règle pour une ECR source Amazon (AWS CloudFormation modèle)

Pour AWS CloudFormation créer une règle, utilisez l'extrait de modèle illustré ici.

Pour mettre à jour votre AWS CloudFormation modèle de pipeline et créer une EventBridge règle
  1. Dans le modèle, ci-dessousResources, utilisez la AWS::IAM::Role AWS CloudFormation ressource pour configurer le IAM rôle qui permet à votre événement de démarrer votre pipeline. Cette entrée crée un rôle qui utilise deux stratégies :

    • La première stratégie autorise le rôle à être endossé.

    • La deuxième stratégie fournit des autorisations pour démarrer le pipeline.

    Pourquoi est-ce que j'effectue cette modification ? Vous devez créer un rôle qui peut être assumé par EventBridge pour démarrer une exécution dans notre pipeline.

    YAML
    EventRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Path: / Policies: - PolicyName: eb-pipeline-execution PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: codepipeline:StartPipelineExecution Resource: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}
    JSON
    { "EventRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "Path": "/", "Policies": [ { "PolicyName": "eb-pipeline-execution", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codepipeline:StartPipelineExecution", "Resource": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" } } ] } } ] } } } ...
  2. Dans le modèle, ci-dessousResources, utilisez la AWS::Events::Rule AWS CloudFormation ressource pour ajouter une EventBridge règle pour la ECR source Amazon. Ce modèle d'événement crée un événement qui surveille les validations dans votre référentiel. Lorsqu'un changement d'état du référentiel est EventBridge détecté, la règle est invoquée StartPipelineExecution sur votre pipeline cible.

    Pourquoi est-ce que je fais ce changement ? Vous devez créer un événement avec une règle qui spécifie comment un transfert d'image doit être effectué, et une cible qui désigne le pipeline devant être lancé par l'événement.

    Cet extrait de code utilise une image nommée eb-test avec une balise latest.

    YAML
    EventRule: Type: 'AWS::Events::Rule' Properties: EventPattern: detail: action-type: [PUSH] image-tag: [latest] repository-name: [eb-test] result: [SUCCESS] detail-type: [ECR Image Action] source: [aws.ecr] Targets: - Arn: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline} RoleArn: !GetAtt - EventRole - Arn Id: codepipeline-AppPipeline
    JSON
    { "EventRule": { "Type": "AWS::Events::Rule", "Properties": { "EventPattern": { "detail": { "action-type": [ "PUSH" ], "image-tag": [ "latest" ], "repository-name": [ "eb-test" ], "result": [ "SUCCESS" ] }, "detail-type": [ "ECR Image Action" ], "source": [ "aws.ecr" ] }, "Targets": [ { "Arn": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" }, "RoleArn": { "Fn::GetAtt": [ "EventRole", "Arn" ] }, "Id": "codepipeline-AppPipeline" } ] } } },
    Note

    Pour consulter le modèle d'événement complet pris en charge pour les ECR événements Amazon, consultez Amazon ECR Events EventBridge et/ou Amazon Elastic Container Registry Events.

  3. Enregistrez le modèle mis à jour sur votre ordinateur local, puis ouvrez la console AWS CloudFormation .

  4. Choisissez votre pile, puis Créer un jeu de modifications pour la pile actuelle.

  5. Chargez le modèle mis à jour, puis affichez les modifications répertoriées dans AWS CloudFormation. Il s'agit des modifications apportées à la pile. Vos nouvelles ressources doivent figurer dans la liste.

  6. Sélectionnez Execute (Exécuter).