Buat CloudWatch Aturan peristiwa 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.

Buat CloudWatch Aturan peristiwa 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 CodePipeline terkait dengan AndaAWSakun.

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

Untuk membuat CloudWatch Aturan acara dengan Amazon ECR sebagai sumber acara dan CodePipeline sebagai target

  1. Menambahkan izin untuk Amazon CloudWatch Peristiwa untuk digunakan CodePipeline untuk memanggil aturan. Untuk informasi selengkapnya, lihatMenggunakan kebijakan berbasis sumber daya untuk Amazon EventBridge.

    1. Gunakan contoh berikut untuk membuat kebijakan kepercayaan yang memungkinkan CloudWatch Peristiwa untuk mengasumsikan 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 membuat izin CloudWatch Peristiwa.

      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 ECRatauPeristiwa Amazon Elastic Container Registry.

  3. Untuk menambahkan CodePipeline sebagai target, memanggilput-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