Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat EventBridge aturan untuk CodeCommit sumber (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 CodeCommit sebagai sumber peristiwa dan CodePipeline sebagai target
-
Tambahkan izin EventBridge untuk digunakan CodePipeline untuk memanggil aturan. Untuk informasi selengkapnya, lihat Menggunakan kebijakan berbasis sumber daya untuk Amazon. EventBridge
-
Gunakan contoh berikut untuk membuat kebijakan kepercayaan yang memungkinkan EventBridge untuk mengambil peran layanan. Sebutkan kebijakan kepercayaan
trustpolicyforEB.json. -
Gunakan perintah berikut untuk membuat
Role-for-MyRuleperan dan melampirkan kebijakan kepercayaan.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json -
Buat kebijakan izin JSON, seperti yang ditunjukkan dalam contoh ini, untuk pipeline bernama
MyFirstPipeline. Beri nama kebijakan izinpermissionspolicyforEB.json. -
Gunakan perintah berikut untuk melampirkan kebijakan
CodePipeline-Permissions-Policy-for-EBizin keRole-for-MyRuleperan.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
-
-
Panggil put-rule perintah dan sertakan
--role-arnparameter--name--event-pattern,, dan.Mengapa saya membuat perubahan ini? Perintah ini CloudFormation memungkinkan untuk membuat acara.
Perintah contoh berikut membuat aturan yang disebut
MyCodeCommitRepoRule.aws events put-rule --name "MyCodeCommitRepoRule" --event-pattern "{\"source\":[\"aws.codecommit\"],\"detail-type\":[\"CodeCommit Repository State Change\"],\"resources\":[\"repository-ARN\"],\"detail\":{\"referenceType\":[\"branch\"],\"referenceName\":[\"main\"]}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule" -
Untuk menambahkan CodePipeline sebagai target, panggil put-targets perintah dan sertakan parameter berikut:
-
--ruleParameter digunakan dengan yangrule_nameAnda buat dengan menggunakanput-rule. -
--targetsParameter digunakan denganIddaftar target dalam daftar target danARNpipa target.
Perintah sampel berikut menentukan bahwa untuk aturan yang
IddipanggilMyCodeCommitRepoRule, target terdiri dari nomor satu, menunjukkan bahwa dalam daftar target untuk aturan, ini adalah target 1. Perintah sampel juga menentukan contohARNuntuk pipeline. Pipeline dimulai ketika sesuatu berubah di repositori.aws events put-targets --rule MyCodeCommitRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline -
-
(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
actionNamecontoh ini, adalah nilai dinamis, didefinisikan pada pembuatan pipeline, bukan berasal dari peristiwa sumber.Source -
Dalam
revisionTypecontoh ini, adalah nilai dinamis, didefinisikan pada pembuatan pipeline, bukan berasal dari peristiwa sumber.COMMIT_ID -
revisionValue, <revisionValue> dalam contoh ini, diturunkan dari variabel peristiwa sumber.
{ "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "pipeline-ARN", "InputTransformer": { "sourceRevisions": { "actionName": "Source", "revisionType": "COMMIT_ID", "revisionValue": "<revisionValue>" }, "variables": [ { "name": "Branch_Name", "value": "value" } ] } } ] } -
Untuk mengedit PollForSourceChanges parameter pipeline Anda
penting
Saat Anda membuat pipeline dengan metode ini, PollForSourceChanges parameter default menjadi true jika tidak secara eksplisit disetel ke false. Saat menambahkan deteksi perubahan berbasis peristiwa, Anda harus menambahkan parameter ke output dan menyetelnya ke false untuk menonaktifkan polling. Jika tidak, pipeline Anda dimulai dua kali untuk satu perubahan sumber. Lihat perinciannya di Pengaturan yang valid untuk PollForSourceChanges parameter.
-
Jalan get-pipeline kan perintah untuk menyalin struktur pipeline ke file JSON. Misalnya, untuk pipeline bernama
MyFirstPipeline, jalankan perintah berikut:aws codepipeline get-pipeline --nameMyFirstPipeline>pipeline.jsonPerintah ini tidak mengembalikan apa pun, tetapi file yang Anda buat akan muncul di direktori tempat Anda menjalankan perintah.
-
Buka file JSON di editor teks biasa dan edit tahap sumber dengan mengubah
PollForSourceChangesparameter menjadifalse, seperti yang ditunjukkan dalam contoh ini.Mengapa saya membuat perubahan ini? Mengubah parameter ini untuk
falsemematikan pemeriksaan berkala sehingga Anda dapat menggunakan deteksi perubahan berbasis peristiwa saja."configuration": {"PollForSourceChanges": "false","BranchName": "main", "RepositoryName": "MyTestRepo" }, -
Jika Anda bekerja dengan struktur pipa yang diambil menggunakan get-pipeline perintah, hapus
metadatagaris dari file JSON. Jika tidak, update-pipeline perintah tidak dapat menggunakannya. Hapus"metadata": { }garis dan"updated"bidang"created""pipelineARN",, dan.Misalnya, hapus baris berikut dari struktur:
"metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" },Simpan file tersebut.
-
Untuk menerapkan perubahan Anda, jalankan update-pipeline perintah, tentukan file JSON pipeline:
penting
Pastikan untuk menyertakan
file://sebelum nama file. Diperlukan dalam perintah ini.aws codepipeline update-pipeline --cli-input-json file://pipeline.jsonPerintah ini mengembalikan seluruh struktur pipa yang diedit.
catatan
Per update-pipeline intah menghentikan pipa. Jika revisi dijalankan melalui pipeline saat Anda menjalankan update-pipeline perintah, proses tersebut dihentikan. Anda harus memulai pipeline secara manual untuk menjalankan revisi tersebut melalui pipeline yang diperbarui. Gunakan
start-pipeline-executionperintah untuk memulai pipeline Anda secara manual.