Amazon ECR 소스에 대한 EventBridge 규칙 생성 (CLI) - AWS CodePipeline

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon ECR 소스에 대한 EventBridge 규칙 생성 (CLI)

put-rule 명령을 호출해 다음을 지정합니다.

  • 만들려는 규칙을 고유하게 식별하는 이름. 이 이름은 CodePipeline AWS 계정과 연계하여 생성하는 모든 파이프라인에서 고유해야 합니다.

  • 소스의 이벤트 패턴 및 규칙에서 사용하는 세부 정보 필드. 자세한 내용은 Amazon EventBridge 및 이벤트 패턴을 참조하십시오.

ECRAmazon을 이벤트 소스 및 CodePipeline 대상으로 사용하여 EventBridge 규칙을 생성하려면
  1. 규칙을 EventBridge 호출하는 CodePipeline 데 사용할 권한을 추가합니다. 자세한 내용은 Amazon의 리소스 기반 정책 사용을 참조하십시오. EventBridge

    1. 다음 샘플을 사용하여 서비스 역할을 EventBridge 맡을 수 있는 신뢰 정책을 생성하십시오. 신뢰 정책 이름을 trustpolicyforEB.json으로 지정합니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 다음 명령을 사용하여 Role-for-MyRule 역할을 생성한 후 신뢰 정책에 연결합니다.

      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
    3. 이 샘플에 표시된 대로 이름이 지정된 파이프라인에 대한 권한 정책을 JSON 생성합니다MyFirstPipeline. 권한 정책 이름을 permissionspolicyforEB.json으로 지정합니다.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
    4. 다음 명령을 사용하여 CodePipeline-Permissions-Policy-for-EB 권한 정책을 Role-for-MyRule 역할에 연결합니다.

      이렇게 변경하는 이유는 무엇입니까? 이 정책을 역할에 추가하면 에 대한 권한이 생성됩니다 EventBridge.

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
  2. put-rule 명령을 호출하고 --name, --event-pattern--role-arn 파라미터를 포함시킵니다.

    이렇게 변경하는 이유는 무엇입니까? 이미지 푸시가 수행되는 방식을 지정하는 규칙과 이벤트에서 시작되는 파이프라인의 이름을 지정하는 대상을 사용하여 이벤트를 생성해야 합니다.

    다음 샘플 명령은 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"
    참고

    Amazon 이벤트에 지원되는 전체 이벤트 패턴을 보려면 Amazon ECR 이벤트 EventBridge 및/또는 Amazon ECR Elastic 컨테이너 레지스트리 이벤트를 참조하십시오.

  3. CodePipeline 대상으로 추가하려면 put-targets 명령을 호출하고 다음 파라미터를 포함하십시오.

    • --rule 파라미터는 put-rule을 사용하여 생성한 rule_name에 사용됩니다.

    • --targets 파라미터는 대상 목록에 있는 대상의 목록 Id 및 대상 파이프라인의 ARN에 사용됩니다.

    다음 예제 명령은 MyECRRepoRule이라는 규칙에 대해 대상 Id가 숫자 1로 구성됨을 지정하며, 규칙의 대상 목록에서 1로 대상 1로 표시됩니다. 예제 명령은 파이프라인에 대한 예 Arn과 규칙에 대한 예 RoleArn도 지정합니다. 파이프라인은 리포지토리에서 변경이 발생하면 시작됩니다.

    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