

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)
<a name="create-cwe-ecr-source-cli"></a>

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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

**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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). EventBridge

   1. 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`.

------
#### [ JSON ]

****  

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

------

   1. 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
      ```

   1. Créez le JSON de stratégie d'autorisations comme indiqué dans cet exemple pour le pipeline nommé `MyFirstPipeline`. Nommez la stratégie d'autorisations `permissionspolicyforEB.json`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "codepipeline:StartPipelineExecution"
                  ],
                  "Resource": [
                      "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline"
                  ]
              }
          ]
      }
      ```

------

   1. 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
      ```

1. 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 événements Amazon ECR, consultez [Amazon ECR Events](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-eventbridge.html) et/ou EventBridge [Amazon Elastic Container Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ecr-event-types) Events.

1. 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
   ```

1. (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 :
   + `Source`Dans cet exemple`actionName`, 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_DIGEST`Dans cet exemple`revisionType`, 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>"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```