Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat 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 acara 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 acara dan CodePipeline sebagai target
-
Tambahkan izin EventBridge untuk digunakan CodePipeline untuk menjalankan 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
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
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
-
Buat kebijakan izinJSON, seperti yang ditunjukkan dalam contoh ini, untuk pipeline bernama
MyFirstPipeline
. Beri nama kebijakanpermissionspolicyforEB.json
izin.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Gunakan perintah berikut untuk melampirkan kebijakan
CodePipeline-Permissions-Policy-for-EB
izin keRole-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
-
-
Panggil put-rule perintah dan sertakan
--name
,--event-pattern
, dan--role-arn
parameter.Mengapa saya membuat perubahan ini? Perintah ini AWS CloudFormation memungkinkan untuk membuat acara.
Contoh perintah berikut menciptakan 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:
-
--rule
Parameter digunakan dengan yangrule_name
Anda buat dengan menggunakanput-rule. -
--targets
Parameter digunakan denganId
daftar target dalam daftar target dan pipa target.ARN
Contoh perintah berikut menentukan bahwa untuk aturan yang dipanggil
MyCodeCommitRepoRule
, targetId
terdiri dari nomor satu, menunjukkan bahwa dalam daftar target untuk aturan, ini adalah target 1. Perintah sample juga menentukan contohARN
untuk 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
-
Untuk mengedit PollForSourceChanges parameter pipeline
penting
Saat Anda membuat pipeline dengan metode ini, PollForSourceChanges
parameter default ke true jika tidak secara eksplisit disetel ke false. Saat Anda menambahkan deteksi perubahan berbasis peristiwa, Anda harus menambahkan parameter ke output Anda dan mengaturnya ke false untuk menonaktifkan polling. Jika tidak, pipeline Anda dimulai dua kali untuk satu perubahan sumber. Untuk detailnya, lihat Pengaturan yang valid untuk PollForSourceChanges parameter.
-
Jalankan get-pipeline perintah untuk menyalin struktur pipa ke dalam JSON file. Misalnya, untuk pipeline bernama
MyFirstPipeline
, jalankan perintah berikut:aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
Perintah ini tidak mengembalikan apa pun, tetapi file yang Anda buat akan muncul di direktori tempat Anda menjalankan perintah.
-
Buka JSON file di editor teks biasa dan edit tahap sumber dengan mengubah
PollForSourceChanges
parameter menjadifalse
, seperti yang ditunjukkan dalam contoh ini.Mengapa saya membuat perubahan ini? Mengubah parameter ini untuk
false
mematikan pemeriksaan berkala sehingga Anda hanya dapat menggunakan deteksi perubahan berbasis peristiwa."configuration": {
"PollForSourceChanges": "false",
"BranchName": "main", "RepositoryName": "MyTestRepo" }, -
Jika Anda bekerja dengan struktur pipa yang diambil menggunakan get-pipeline perintah, hapus
metadata
baris dari JSON file. Jika tidak, update-pipeline perintah tidak dapat menggunakannya. Hapus"metadata": { }
garis dan"created"
,"pipelineARN"
, dan"updated"
bidang.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, dengan menentukan JSON file pipeline:
penting
Pastikan untuk menyertakan
file://
sebelum nama file. Diperlukan dalam perintah ini.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
Perintah ini mengembalikan seluruh struktur pipa yang diedit.
catatan
update-pipelinePerintah menghentikan pipa. Jika revisi sedang dijalankan melalui pipeline saat Anda menjalankan update-pipeline perintah, proses itu dihentikan. Anda harus memulai pipeline secara manual untuk menjalankan revisi itu melalui pipeline yang diperbarui. Gunakan
start-pipeline-execution
perintah untuk memulai pipeline Anda secara manual.