

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie uma EventBridge regra para uma fonte do Amazon ECR (CLI)
<a name="create-cwe-ecr-source-cli"></a>

Use o comando **put-rule**, especificando:
+ Um nome que identifique de forma exclusiva a regra que você está criando. Esse nome deve ser exclusivo em todos os pipelines que você cria CodePipeline associados à sua AWS conta.
+ O padrão de evento para a origem e os campos detalhados usados pela regra. Para obter mais informações, consulte [Amazon EventBridge e Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

**Para criar uma EventBridge regra com o Amazon ECR como origem e destino CodePipeline do evento**

1. Adicione permissões para usar EventBridge CodePipeline para invocar a regra. Para obter mais informações, consulte [Uso de políticas baseadas em recursos para a Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). EventBridge

   1. Use o exemplo a seguir para criar a política de confiança que permite ao EventBridge assumir a função de serviço. Nomeie a política de confiança `trustpolicyforEB.json`.

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

****  

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

------

   1. Use o comando a seguir para criar a função `Role-for-MyRule` e anexar a política de confiança.

      ```
      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
      ```

   1. Crie o JSON de política de permissões, conforme mostrado neste exemplo, para o pipeline denominado `MyFirstPipeline`. Nomeie a politica de permissões `permissionspolicyforEB.json`.

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

****  

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

------

   1. Use o comando a seguir para anexar a política de permissões `CodePipeline-Permissions-Policy-for-EB` à função `Role-for-MyRule`.

      **Por que estou fazendo essa alteração?** Adicionar essa política à função cria permissões para EventBridge.

      ```
      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
      ```

1. Use o comando **put-rule** e inclua os parâmetros `--name`, `--event-pattern` e `--role-arn`.

   **Por que estou fazendo essa alteração?** Você deve criar um evento com uma regra que especifique como deve ser feito um envio de imagem por push e um destino que nomeie o pipeline a ser iniciado pelo evento.

   O comando de exemplo a seguir cria uma regra chamada `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"
   ```
**nota**  
Para ver o padrão completo de eventos suportado pelos eventos do Amazon ECR, consulte Eventos do [Amazon ECR e/ou Eventos](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-eventbridge.html) do EventBridge [Amazon Elastic Container Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ecr-event-types).

1. Para adicionar CodePipeline como destino, chame o **put-targets** comando e inclua os seguintes parâmetros:
   + O parâmetro `--rule` é usado com `rule_name` criado por meio de **put-rule**.
   + O parâmetro `--targets` é usado com o `Id` da lista do destino na lista de destinos e o `ARN` do pipeline de destino.

   O exemplo de comando a seguir especifica que, para a regra chamada `MyECRRepoRule`, o `Id` do destino é composto do número um, indicando que, em uma lista de destinos para a regra, esse é o destino 1. O comando de exemplo também especifica um exemplo `Arn` para o pipeline e o exemplo `RoleArn` para a regra. O pipeline é iniciado quando uma alteração é feita no repositório.

   ```
   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. (Opcional) Para configurar um transformador de entrada com substituições de origem para um ID de imagem específico, use o JSON a seguir no comando da CLI. O exemplo a seguir configura uma substituição na qual:
   + O `actionName`, `Source` neste exemplo, é o valor dinâmico, definido na criação do pipeline, não derivado do evento de origem.
   + O `revisionType`, `IMAGE_DIGEST` neste exemplo, é o valor dinâmico, definido na criação do pipeline, não derivado do evento de origem.
   + O`revisionValue`, < *revisionValue* > neste exemplo, é derivado da variável de evento de origem.

   ```
   {
       "Rule": "my-rule",
       "Targets": [
           {
               "Id": "MyTargetId",
               "Arn": "ARN",
               "InputTransformer": {
                   "InputPathsMap": {
                       "revisionValue": "$.detail.image-digest"
                   },
                   "InputTemplate": {
                       "sourceRevisions": [
                           {
                               "actionName": "Source",
                               "revisionType": "IMAGE_DIGEST",
                               "revisionValue": "<revisionValue>"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```