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 S3 (CLI)
Untuk membuatAWS CloudTrailjejak dan mengaktifkan pencatatan
Untuk menggunakanAWS CLIuntuk membuat jejak, memanggilcreate-trailperintah, menentukan:
-
Nama jejak.
-
Ember yang telah Anda terapkan kebijakan bucketAWS CloudTrail.
Untuk informasi selengkapnya, lihatMembuat jejak denganAWSantarmuka baris perintah.
-
Memanggilcreate-trailperintah dan termasuk
--name
dan--s3-bucket-name
parameter.Mengapa saya membuat perubahan ini? Ini menciptakan jejak CloudTrail yang diperlukan untuk bucket sumber S3 Anda.
Perintah berikut menggunakan
--name
dan--s3-bucket-name
untuk membuat jejak bernamamy-trail
dan ember bernamamyBucket
.aws cloudtrail create-trail --name my-trail --s3-bucket-name myBucket
-
Memanggilstart-loggingperintah dan termasuk
--name
parameter.Mengapa saya membuat perubahan ini? Perintah ini memulai pencatatan CloudTrail untuk bucket sumber Anda dan mengirimkan peristiwa ke CloudWatch Events.
Contoh:
Perintah berikut menggunakan
--name
untuk mulai log pada jejak bernamamy-trail
.aws cloudtrail start-logging --name my-trail
-
Memanggilput-event-selectorsperintah dan termasuk
--trail-name
dan--event-selectors
parameter. Gunakan pemilih peristiwa untuk menentukan bahwa Anda ingin jejak Anda mencatat peristiwa data untuk bucket sumber Anda dan mengirim peristiwa ke aturan Amazon CloudWatch Events.Mengapa saya membuat perubahan ini? Perintah ini menyaring peristiwa.
Contoh:
Perintah berikut menggunakan
--trail-name
dan--event-selectors
untuk menentukan peristiwa data untuk bucket sumber dan awalan bernamamyBucket/myFolder
.aws cloudtrail put-event-selectors --trail-name
my-trail
--event-selectors '[{ "ReadWriteType": "WriteOnly", "IncludeManagementEvents":false, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::myBucket/myFolder/file.zip"] }] }]'
Untuk membuat aturan CloudWatch Events dengan Amazon S3 sebagai sumber peristiwa dan CodePipeline sebagai target dan menerapkan kebijakan izin
-
Berikan izin untuk Amazon CloudWatch Events agar dapat menggunakan CodePipeline untuk memanggil aturan tersebut. Untuk informasi selengkapnya, lihatMenggunakan Kebijakan Berbasis Sumber Daya untuk Amazon CloudWatch Events.
-
Gunakan contoh berikut untuk membuat kebijakan kepercayaan untuk memungkinkan CloudWatch Events mengambil peran layanan. Nama
trustpolicyforCWE.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.Mengapa saya membuat perubahan ini? Menambahkan kebijakan kepercayaan ini ke peran akan membuat izin untuk CloudWatch Events.
aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforCWE.json
-
Buat kebijakan izin JSON, seperti yang ditunjukkan di sini untuk pipa bernama
MyFirstPipeline
. Beri nama kebijakan izinpermissionspolicyforCWE.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
Gunakan perintah berikut untuk melampirkan yang baru
CodePipeline-Permissions-Policy-for-CWE
kebijakan izin untukRole-for-MyRule
peran yang Anda buat.aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-CWE --policy-document file://permissionspolicyforCWE.json
-
-
Memanggilput-ruleperintah dan termasuk
--name
,--event-pattern
, dan--role-arn
parameter.Contoh perintah berikut membuat aturan bernama
MyS3SourceRule
.aws events put-rule --name "MyS3SourceRule" --event-pattern "{\"source\":[\"aws.s3\"],\"detail-type\":[\"AWS API Call via CloudTrail\"],\"detail\":{\"eventSource\":[\"s3.amazonaws.com\"],\"eventName\":[\"CopyObject\",\"PutObject\",\"CompleteMultipartUpload\"],\"requestParameters\":{\"bucketName\":[\"my-bucket\"],\"key\":[\"my-key\"]}}} --role-arn "arn:aws:iam::
ACCOUNT_ID
:role/Role-for-MyRule" -
Untuk menambahkan CodePipeline sebagai target, panggilput-targetsperintah dan termasuk
--rule
dan--targets
parameter.Perintah berikut menentukan bahwa untuk aturan bernama
MyS3SourceRule
, targetId
terdiri dari nomor satu, menunjukkan bahwa dalam daftar target untuk aturan, ini adalah target 1. Perintah ini juga menentukan contohARN
untuk alur. Pipa dimulai ketika sesuatu berubah dalam repositori.aws events put-targets --rule MyS3SourceRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
Untuk mengedit parameter PollForSourceChanges pipeline
Bila Anda membuat alur dengan metode ini,PollForSourceChanges
parameter default ke true jika tidak secara eksplisit diatur ke false. Ketika Anda menambahkan deteksi perubahan berbasis peristiwa, Anda harus menambahkan parameter ke output Anda dan mengaturnya ke false untuk menonaktifkan polling. Jika tidak, pipa Anda dimulai dua kali untuk perubahan sumber tunggal. Untuk detailnya, lihat Pengaturan default untuk parameter PollForSourceChanges.
-
Jalankanget-pipelineperintah untuk menyalin struktur pipa ke dalam file JSON. Misalnya, untuk pipa bernama
MyFirstPipeline
, jalankan perintah berikut:aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
Perintah ini tidak mengembalikan apa pun, tapi file yang Anda buat akan muncul di direktori tempat Anda menjalankan perintah tersebut.
-
Buka file JSON di editor teks biasa dan edit tahap sumber dengan mengubah
PollForSourceChanges
parameter untuk bucket bernamastorage-bucket
kepadafalse
, seperti yang ditunjukkan dalam contoh ini.Mengapa saya membuat perubahan ini? Mengatur parameter ini ke
false
mematikan pemeriksaan berkala sehingga Anda dapat menggunakan deteksi perubahan berbasis peristiwa saja."configuration": { "S3Bucket": "storage-bucket",
"PollForSourceChanges": "false",
"S3ObjectKey": "index.zip" }, -
Jika Anda bekerja dengan struktur pipa diambil menggunakanget-pipelineperintah, Anda harus menghapus
metadata
baris dari file JSON. Jika tidak,update-pipelineperintah 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.
-
Untuk menerapkan perubahan Anda, jalankanupdate-pipelineperintah, menentukan pipa JSON file:
penting Pastikan untuk menyertakan
file://
sebelum nama file. Hal ini diperlukan dalam perintah ini.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
Perintah ini mengembalikan seluruh struktur pipa diedit.
catatan Parameterupdate-pipelineperintah berhenti pipa. Jika revisi sedang dijalankan melalui pipa ketika Anda menjalankanupdate-pipelineperintah, yang menjalankan dihentikan. Anda harus secara manual memulai pipa untuk menjalankan revisi melalui pipa yang diperbarui. Menggunakanstart-pipeline-executionperintah untuk secara manual memulai pipa Anda.