Amazon ECR 소스 (AWS CloudFormation 템플릿) 에 대한 EventBridge 규칙 생성 - AWS CodePipeline

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

Amazon ECR 소스 (AWS CloudFormation 템플릿) 에 대한 EventBridge 규칙 생성

규칙을 생성하는 AWS CloudFormation 데 사용하려면 여기에 표시된 대로 템플릿 스니펫을 사용하십시오.

파이프라인 AWS CloudFormation 템플릿을 업데이트하고 규칙을 생성하려면 EventBridge
  1. 템플릿의 아래에서 Resources AWS::IAM::Role AWS CloudFormation 리소스를 사용하여 이벤트가 파이프라인을 시작하도록 허용하는 IAM 역할을 구성하세요. 이 항목은 두 가지 정책을 사용하는 역할을 만듭니다.

    • 첫 번째 정책은 가 역할을 수임하도록 허용합니다.

    • 두 번째 정책은 파이프라인을 시작할 권한을 부여합니다.

    이렇게 변경하는 이유는 무엇입니까? 파이프라인에서 실행을 EventBridge 시작하려면 담당할 수 있는 역할을 생성해야 합니다.

    YAML
    EventRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Path: / Policies: - PolicyName: eb-pipeline-execution PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: codepipeline:StartPipelineExecution Resource: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}
    JSON
    { "EventRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "Path": "/", "Policies": [ { "PolicyName": "eb-pipeline-execution", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codepipeline:StartPipelineExecution", "Resource": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" } } ] } } ] } } } ...
  2. 템플릿의 아래에서 Resources AWS::Events::Rule AWS CloudFormation 리소스를 사용하여 Amazon ECR 소스에 대한 EventBridge 규칙을 추가합니다. 이 이벤트 패턴은 리포지토리에 대한 커밋을 모니터링하는 이벤트를 생성합니다. 리포지토리 상태 변경을 EventBridge 감지하면 해당 규칙이 대상 StartPipelineExecution 파이프라인에서 호출됩니다.

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

    이 조각은 latest 태그와 함께 eb-test라는 이미지를 사용합니다.

    YAML
    EventRule: Type: 'AWS::Events::Rule' Properties: EventPattern: detail: action-type: [PUSH] image-tag: [latest] repository-name: [eb-test] result: [SUCCESS] detail-type: [ECR Image Action] source: [aws.ecr] Targets: - Arn: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline} RoleArn: !GetAtt - EventRole - Arn Id: codepipeline-AppPipeline
    JSON
    { "EventRule": { "Type": "AWS::Events::Rule", "Properties": { "EventPattern": { "detail": { "action-type": [ "PUSH" ], "image-tag": [ "latest" ], "repository-name": [ "eb-test" ], "result": [ "SUCCESS" ] }, "detail-type": [ "ECR Image Action" ], "source": [ "aws.ecr" ] }, "Targets": [ { "Arn": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" }, "RoleArn": { "Fn::GetAtt": [ "EventRole", "Arn" ] }, "Id": "codepipeline-AppPipeline" } ] } } },
    참고

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

  3. 업데이트된 템플릿을 로컬 컴퓨터에 저장하고 AWS CloudFormation 콘솔을 엽니다.

  4. 스택을 선택한 후 현재 스택에 대한 변경 세트 만들기를 선택합니다.

  5. 템플릿을 업로드한 후 AWS CloudFormation에 나열된 변경 사항을 확인합니다. 이는 스택에 적용될 변경 사항입니다. 목록에 새로운 리소스가 표시됩니다.

  6. 실행을 선택합니다.