Création d'une EventBridge règle pour une ECR source Amazon (CLI) - 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 (CLI)

Appelez la commande put-rule, en spécifiant les éléments suivants :

  • Un nom qui identifie de façon unique la règle que vous créez. Ce nom doit être unique pour tous les pipelines que vous créez CodePipeline associés à votre AWS compte.

  • Le modèle d'événement pour la source et les champs de détails utilisés par la règle. Pour plus d'informations, consultez Amazon EventBridge et Event Patterns.

Pour créer une EventBridge règle avec Amazon ECR comme source d'événement et CodePipeline comme cible
  1. Ajoutez des autorisations EventBridge à utiliser CodePipeline pour invoquer la règle. Pour plus d'informations, consultez Utiliser des politiques basées sur les ressources pour Amazon. EventBridge

    1. Utilisez l'exemple suivant pour créer la politique de confiance qui permet EventBridge d'assumer le rôle de service. Nommez la stratégie d'approbation trustpolicyforEB.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Utilisez la commande suivante pour créer le rôle Role-for-MyRule et attachez la stratégie d'approbation.

      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
    3. Créez la politique d'autorisationJSON, comme indiqué dans cet exemple, pour le pipeline nomméMyFirstPipeline. Nommez la stratégie d'autorisations permissionspolicyforEB.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
    4. Utilisez la commande suivante pour attacher au rôle Role-for-MyRule la stratégie d'autorisations CodePipeline-Permissions-Policy-for-EB.

      Pourquoi est-ce que j'effectue cette modification ? L'ajout de cette politique au rôle crée des autorisations pour EventBridge.

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
  2. Appelez la commande put-rule et incluez les paramètres --name, --event-pattern et --role-arn.

    Pourquoi est-ce que j'effectue cette modification ? Vous devez créer un événement avec une règle qui spécifie la manière dont un transfert d'image doit être effectué, et une cible qui nomme le pipeline devant être lancé par l'événement.

    L'exemple de commande suivant crée une règle nommée MyECRRepoRule.

    aws events put-rule --name "MyECRRepoRule" --event-pattern "{\"detail-type\":[\"ECR Image Action\"],\"source\":[\"aws.ecr\"],\"detail\":{\"action-type\":[\"PUSH\"],\"image-tag\":[\"latest\"],\"repository-name\":[\"eb-test\"],\"result\":[\"SUCCESS\"]}}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule"
    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. Pour l'ajouter CodePipeline en tant que cible, appelez la put-targets commande et incluez les paramètres suivants :

    • Le paramètre --rule s'utilise avec le la règle rule_name que vous avez créée à l'aide de la commande put-rule.

    • Le paramètre --targets s'utilise avec l'ID de liste Id de la cible figurant dans la liste des cibles et l'ARN du pipeline cible.

    L'exemple de commande suivant spécifie que pour la règle appelée MyECRRepoRule, l'Id cible est composé du numéro un, ce qui indique qu'il s'agit de la règle 1 dans une liste de cibles pour la règle. L'exemple de commande spécifie également un exemple d'Arn pour le pipeline et l'exemple de RoleArn pour la règle. Le pipeline démarre lorsque des modifications sont effectuées dans le référentiel.

    aws events put-targets --rule MyECRRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline,RoleArn=arn:aws:iam::80398EXAMPLE:role/Role-for-MyRule