Buat aturan CloudWatch Events untuk sumber Amazon ECR (AWS CloudFormationtemplat) - AWS CodePipeline

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat aturan CloudWatch Events untuk sumber Amazon ECR (AWS CloudFormationtemplat)

UntukAWS CloudFormationuntuk membuat aturan, gunakan cuplikan template seperti yang ditunjukkan di sini.

Untuk memperbarui alur AndaAWS CloudFormationtemplate dan membuat aturan CloudWatch Events

  1. Dalam template, di bawahResources, gunakanAWS::IAM::Role AWS CloudFormationsumber daya untuk mengkonfigurasi peran IAM yang memungkinkan acara Anda memulai saluran pipa Anda. Entri ini menciptakan peran yang menggunakan dua kebijakan:

    • Kebijakan pertama memungkinkan peran yang akan diasumsikan.

    • Kebijakan kedua memberikan izin untuk memulai pipa.

    Mengapa saya membuat perubahan ini? Anda harus membuat peran yang dapat diasumsikan oleh CloudWatch Events untuk memulai eksekusi di pipeline kami.

    YAML
    AmazonCloudWatchEventRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Path: / Policies: - PolicyName: cwe-pipeline-execution PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: codepipeline:StartPipelineExecution Resource: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}
    JSON
    { "AmazonCloudWatchEventRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "Path": "/", "Policies": [ { "PolicyName": "cwe-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. Dalam template, di bawahResources, gunakanAWS::Events::Rule AWS CloudFormationsumber daya untuk menambahkan aturan CloudWatch Events untuk sumber Amazon ECR. Pola acara ini membuat acara yang memonitor berkomitmen untuk repositori Anda. Ketika CloudWatch Events mendeteksi perubahan status repositori, aturan akan dipanggilStartPipelineExecutionpada pipa target Anda.

    Mengapa saya membuat perubahan ini? Anda harus membuat acara dengan aturan yang menentukan bagaimana push gambar harus dibuat, dan target yang menamai pipeline yang akan dimulai oleh acara.

    Cuplikan ini menggunakan gambar bernamacwe-testdengan taglatest.

    YAML
    AmazonCloudWatchEventRule: Type: 'AWS::Events::Rule' Properties: EventPattern: detail: action-type: [PUSH] image-tag: [latest] repository-name: [cwe-test] result: [SUCCESS] detail-type: [ECR Image Action] source: [aws.ecr] Targets: - Arn: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline} RoleArn: !GetAtt - AmazonCloudWatchEventRole - Arn Id: codepipeline-AppPipeline
    JSON
    { "AmazonCloudWatchEventRule": { "Type": "AWS::Events::Rule", "Properties": { "EventPattern": { "detail": { "action-type": [ "PUSH" ], "image-tag": [ "latest" ], "repository-name": [ "cwe-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": [ "AmazonCloudWatchEventRole", "Arn" ] }, "Id": "codepipeline-AppPipeline" } ] } } },
    catatan

    Untuk melihat pola acara lengkap yang didukung untuk peristiwa Amazon ECR, lihatPeristiwa Amazon ECR dan EventBridgeatauPeristiwa Amazon Elastic Container Registry.

  3. Simpan template yang diperbarui ke komputer lokal Anda, dan kemudian bukaAWS CloudFormationkonsol.

  4. Pilih tumpukan Anda, lalu pilihBuat Ubah Set untuk Stack Saat Ini.

  5. Upload template, dan kemudian melihat perubahan yang tercantum dalamAWS CloudFormation. Ini adalah perubahan yang akan dibuat untuk tumpukan. Anda akan melihat sumber daya baru Anda dalam daftar.

  6. Pilih Eksekusi.