Buat EventBridge aturan untuk sumber Amazon ECR (AWS CloudFormation template) - AWS CodePipeline

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

Buat EventBridge aturan untuk sumber Amazon ECR (AWS CloudFormation template)

Untuk digunakan AWS CloudFormation untuk membuat aturan, gunakan cuplikan template seperti yang ditunjukkan di sini.

Untuk memperbarui AWS CloudFormation template pipeline Anda dan membuat EventBridge aturan
  1. Di template, di bawahResources, gunakan AWS::IAM::Role AWS CloudFormation sumber daya untuk mengonfigurasi peran IAM yang memungkinkan acara Anda memulai pipeline. Entri ini membuat peran yang menggunakan dua kebijakan:

    • Kebijakan pertama memungkinkan peran diasumsikan.

    • Kebijakan kedua memberikan izin untuk memulai pipeline.

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

    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. Dalam template, di bawahResources, gunakan AWS::Events::Rule AWS CloudFormation sumber daya untuk menambahkan EventBridge aturan untuk sumber Amazon ECR. Pola acara ini membuat acara yang memantau komit ke repositori Anda. Saat EventBridge mendeteksi perubahan status repositori, aturan akan muncul di pipeline target AndaStartPipelineExecution.

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

    Cuplikan ini menggunakan gambar bernama eb-test dengan tag. latest

    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" } ] } } },
    catatan

    Untuk melihat pola peristiwa lengkap yang didukung untuk peristiwa Amazon ECR, lihat Acara ECR Amazon dan atau Acara Registri Penampung Elastis EventBridge Amazon.

  3. Simpan template yang diperbarui ke komputer lokal Anda, lalu buka AWS CloudFormation konsol.

  4. Pilih tumpukan Anda, lalu pilih Create Change Set for Current Stack.

  5. Unggah template, lalu lihat perubahan yang tercantum di dalamnya AWS CloudFormation. Ini adalah perubahan yang harus dilakukan pada tumpukan. Anda harus melihat sumber daya baru Anda dalam daftar.

  6. Pilih Eksekusi.