Crie uma EventBridge regra para uma fonte do Amazon ECR (CLI) - AWS CodePipeline

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)

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.

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

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 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
    3. 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.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
    4. 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
  2. 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 do EventBridge Amazon Elastic Container Registry.

  3. 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