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 source Amazon ECR (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
-
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
-
Utilisez l'exemple suivant pour créer la stratégie d'approbation qui permet à EventBridge d'assumer le rôle de service. Nommez la stratégie d'approbation
trustpolicyforEB.json. -
Utilisez la commande suivante pour créer le rôle
Role-for-MyRuleet attachez la stratégie d'approbation.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json -
Créez le JSON de stratégie d'autorisations comme indiqué dans cet exemple pour le pipeline nommé
MyFirstPipeline. Nommez la stratégie d'autorisationspermissionspolicyforEB.json. -
Utilisez la commande suivante pour attacher au rôle
Role-for-MyRulela stratégie d'autorisationsCodePipeline-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
-
-
Appelez la commande put-rule et incluez les paramètres
--name,--event-patternet--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 événements Amazon ECR, consultez Amazon ECR Events et/ou EventBridge Amazon Elastic Container Registry Events.
-
Pour l'ajouter CodePipeline en tant que cible, appelez la put-targets commande et incluez les paramètres suivants :
-
Le paramètre
--rules'utilise avec le la règlerule_nameque vous avez créée à l'aide de la commande put-rule. -
Le paramètre
--targetss'utilise avec l'ID de listeIdde la cible figurant dans la liste des cibles et l'ARNdu pipeline cible.
L'exemple de commande suivant spécifie que pour la règle appelée
MyECRRepoRule, l'Idcible 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'Arnpour le pipeline et l'exemple deRoleArnpour 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 -
-
(Facultatif) Pour configurer un transformateur d'entrée avec des remplacements de source pour un ID d'image spécifique, utilisez le code JSON suivant dans votre commande CLI. L'exemple suivant configure une dérogation dans laquelle :
-
SourceDans cet exempleactionName, il s'agit de la valeur dynamique, définie lors de la création du pipeline, qui n'est pas dérivée de l'événement source. -
IMAGE_DIGESTDans cet exemplerevisionType, il s'agit de la valeur dynamique, définie lors de la création du pipeline, qui n'est pas dérivée de l'événement source. -
Dans cet exemple
revisionValue, le <revisionValue> est dérivé de la variable d'événement source.
{ "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "ARN", "InputTransformer": { "InputPathsMap": { "revisionValue": "$.detail.image-digest" }, "InputTemplate": { "sourceRevisions": [ { "actionName": "Source", "revisionType": "IMAGE_DIGEST", "revisionValue": "<revisionValue>" } ] } } } ] } -