Membuat aturan CloudWatch Events untuk sumber Amazon ECR (CLI) - AWS CodePipeline

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

Membuat aturan CloudWatch Events untuk sumber Amazon ECR (CLI)

Memanggilput-ruleperintah, menentukan:

  • Nama yang secara unik mengidentifikasi aturan yang Anda buat. Nama ini harus unik di semua jaringan pipa yang Anda buat dengan CodePipeline yang terkait denganAWSakun.

  • Pola acara untuk bidang sumber dan detail yang digunakan oleh aturan. Untuk informasi selengkapnya, lihatPeristiwa dan Pola Peristiwa Amazon CloudWatch.

Untuk membuat aturan CloudWatch Events dengan Amazon ECR sebagai sumber peristiwa dan CodePipeline sebagai target

  1. Tambahkan izin untuk Amazon CloudWatch Events agar dapat menggunakan CodePipeline untuk memanggil aturan tersebut. Untuk informasi selengkapnya, lihatMenggunakan kebijakan berbasis sumber daya untuk Amazon EventBridge.

    1. Gunakan contoh berikut untuk membuat kebijakan kepercayaan yang memungkinkan CloudWatch Events untuk mengambil peran layanan. Beri nama kebijakan kepercayaantrustpolicyforCWE.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Gunakan perintah berikut untuk membuatRole-for-MyRuleperan dan melampirkan kebijakan kepercayaan.

      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforCWE.json
    3. Buat kebijakan izin JSON, seperti yang ditunjukkan dalam sampel ini, untuk pipa bernamaMyFirstPipeline. Beri nama kebijakan izinpermissionspolicyforCWE.json.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
    4. Gunakan perintah berikut untuk melampirkanCodePipeline-Permissions-Policy-for-CWEkebijakan izin untukRole-for-MyRuleperan.

      Mengapa saya membuat perubahan ini? Menambahkan kebijakan ini ke peran akan membuat izin untuk CloudWatch Events.

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-CWE --policy-document file://permissionspolicyforCWE.json
  2. Memanggilput-ruleperintah dan termasuk--name,--event-pattern, dan--role-arnparameter.

    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.

    Contoh perintah berikut membuat aturan yang disebutMyECRRepoRule.

    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\":[\"cwe-test\"],\"result\":[\"SUCCESS\"]}}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule"
    catatan

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

  3. Untuk menambahkan CodePipeline sebagai target, panggilput-targetsperintah dan mencakup parameter berikut:

    • Parameter--ruleparameter yang digunakan denganrule_namekamu buat dengan menggunakanput-rule.

    • Parameter--targetsparameter yang digunakan dengan daftarIddari target dalam daftar target danARNdari pipa target.

    Contoh perintah berikut menentukan bahwa untuk aturan yang disebutMyECRRepoRule, targetIdterdiri dari nomor satu, menunjukkan bahwa dalam daftar target untuk aturan, ini adalah target 1. Perintah sampel juga menentukan contohArnuntuk pipa dan contohnyaRoleArnuntuk aturan. Pipa dimulai ketika sesuatu berubah dalam repositori.

    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