View a markdown version of this page

Membuat EventBridge aturan 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 EventBridge aturan untuk sumber Amazon ECR (CLI)

Panggil put-rule perintah, tentukan:

  • Nama yang secara unik mengidentifikasi aturan yang Anda buat. Nama ini harus unik di semua pipeline yang Anda buat CodePipeline terkait dengan AWS akun Anda.

  • Pola peristiwa untuk bidang sumber dan detail yang digunakan oleh aturan. Untuk informasi selengkapnya, lihat Amazon EventBridge dan Pola Acara.

Untuk membuat EventBridge aturan dengan Amazon ECR sebagai sumber acara dan CodePipeline sebagai target
  1. Tambahkan izin EventBridge untuk digunakan CodePipeline untuk memanggil aturan. Untuk informasi selengkapnya, lihat Menggunakan kebijakan berbasis sumber daya untuk Amazon. EventBridge

    1. Gunakan contoh berikut untuk membuat kebijakan kepercayaan yang memungkinkan EventBridge untuk mengambil peran layanan. Beri nama kebijakan kepercayaantrustpolicyforEB.json.

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

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

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline" ] } ] }
    4. Gunakan perintah berikut untuk melampirkan kebijakan CodePipeline-Permissions-Policy-for-EB izin ke Role-for-MyRule peran.

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

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
  2. Panggil put-rule perintah dan sertakan --role-arn parameter --name--event-pattern,, dan.

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

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

    Untuk melihat pola acara lengkap yang didukung untuk acara Amazon ECR, lihat Amazon ECR Events dan EventBridge atau Amazon Elastic Container Registry Events.

  3. Untuk menambahkan CodePipeline sebagai target, panggil put-targets perintah dan sertakan parameter berikut:

    • --ruleParameter digunakan dengan yang rule_name Anda buat dengan menggunakanput-rule.

    • --targetsParameter digunakan dengan Id daftar target dalam daftar target dan ARN pipa target.

    Perintah sampel berikut menentukan bahwa untuk aturan yang Id dipanggilMyECRRepoRule, target terdiri dari nomor satu, menunjukkan bahwa dalam daftar target untuk aturan, ini adalah target 1. Perintah sampel juga menentukan contoh Arn untuk pipeline dan contoh RoleArn untuk aturan. Pipeline dimulai ketika sesuatu berubah di 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
  4. (Opsional) Untuk mengonfigurasi transformator input dengan penggantian sumber untuk ID gambar tertentu, gunakan JSON berikut dalam perintah CLI Anda. Contoh berikut mengonfigurasi penggantian di mana:

    • Dalam actionName contoh ini, adalah nilai dinamis, didefinisikan pada pembuatan pipeline, bukan berasal dari peristiwa sumber. Source

    • Dalam revisionType contoh ini, adalah nilai dinamis, didefinisikan pada pembuatan pipeline, bukan berasal dari peristiwa sumber. IMAGE_DIGEST

    • revisionValue, < revisionValue > dalam contoh ini, diturunkan dari variabel peristiwa sumber.

    { "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "ARN", "InputTransformer": { "InputPathsMap": { "revisionValue": "$.detail.image-digest" }, "InputTemplate": { "sourceRevisions": [ { "actionName": "Source", "revisionType": "IMAGE_DIGEST", "revisionValue": "<revisionValue>" } ] } } } ] }