View a markdown version of this page

Target bus acara di Amazon EventBridge - Amazon EventBridge

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Target bus acara di Amazon EventBridge

Target adalah sumber daya atau titik akhir yang EventBridge mengirimkan peristiwa ke saat peristiwa cocok dengan pola peristiwa yang ditentukan untuk aturan. Aturan memproses data peristiwa dan mengirimkan informasi yang berkaitan ke target. Untuk mengirimkan data peristiwa ke target, EventBridge perlu izin untuk mengakses sumber daya target. Anda dapat menentukan hingga lima target untuk setiap aturan.

Ketika Anda menambahkan target ke aturan dan aturan tersebut berjalan segera setelah itu, setiap target baru atau diperbarui mungkin tidak segera dipanggil. Berikan waktu yang singkat agar perubahan diterapkan.

Target bus acara tersedia di EventBridge konsol

Anda dapat mengonfigurasi jenis target berikut untuk aturan di EventBridge konsol:

Parameter terget

Beberapa target tidak mengirim informasi dalam payload acara ke target, sebaliknya, mereka memperlakukan peristiwa sebagai pemicu untuk memanggil API tertentu. EventBridge menggunakan parameter Target untuk menentukan apa yang terjadi dengan target itu. Sumber daya yang dimaksud meliputi:

  • Tujuan API

    Data yang dikirim ke tujuan API harus sesuai dengan struktur API. Gunakan InputTransformer objek untuk memastikan data terstruktur dengan benar. Jika Anda ingin menyertakan payload acara asli, rujuk di InputTransformer.

  • API Gateway

    Data yang dikirim ke API Gateway harus sesuai dengan struktur API. Gunakan InputTransformer objek untuk memastikan data terstruktur dengan benar. Jika Anda ingin menyertakan payload acara asli, rujuk di InputTransformer.

  • EC2 Image Builder Amazon

  • Cluster API Data Amazon Redshift

    Gunakan RedshiftDataParameters.

  • Pipa SageMaker Pembuatan Model Runtime Amazon

    Gunakan SageMakerPipelineParameters.

  • Amazon SQS fair dan antrian FIFO

    Gunakan SqsParameters untuk menentukan grup pesan yang akan digunakan sebagai target.

  • Run Command Systems Manager

    Gunakan RunCommandParameters untuk menentukan dokumen SSM dan instance target. Untuk informasi selengkapnya, lihat System Manager Run Command sebagai target.

catatan

EventBridge tidak mendukung semua sintaks JSON Path dan mengevaluasinya saat runtime. Sintaks yang didukung meliputi:

  • notasi titik (misalnya,$.detail)

  • tanda hubung

  • menggarisbawahi

  • karakter alfanumerik

  • indeks array

  • karakter pengganti (*)

  • garis miring ke depan

Parameter jalur dinamis

Parameter jalur dinamis memungkinkan Anda menggunakan sintaks jalur JSON untuk mereferensikan data peristiwa saat runtime alih-alih nilai statis.

Anda dapat menggunakan sintaks jalur JSON dinamis dengan parameter target untuk menentukan jalur JSON alih-alih nilai statis (misalnya,$.detail.state).

Persyaratan

Seluruh nilai harus berupa jalur JSON, bukan hanya bagian darinya. Contoh:

  • ✓ Benar: RedshiftParameters.Sql bisa $.detail.state

  • ✗ Salah: RedshiftParameters.Sql tidak bisa "SELECT * FROM $.detail.state"

EventBridge menggantikan jalur ini saat runtime dengan data dari muatan peristiwa di jalur yang ditentukan.

Batasan

Parameter jalur dinamis tidak dapat mereferensikan nilai baru atau diubah dari transformasi input. Sintaks jalur JSON sama dengan sintaks transformasi input. Untuk informasi selengkapnya, lihat Transformasi EventBridge masukan Amazon.

Parameter yang didukung

Anda dapat menggunakan sintaks dinamis pada semua string, bidang non-enum dari parameter ini:

Izin

Untuk melakukan panggilan API pada sumber daya yang Anda miliki, EventBridge perlu izin yang sesuai. Tentukan peran eksekusi IAM menggunakan EventBridge konsol, atau dengan menyetel RoleARN parameter di PutTargets.

Misalnya, kebijakan berikut mendefinisikan izin untuk mengirim pesan ke antrian Amazon SQS:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name" ] } ] }

Dan kebijakan kepercayaan berikut memungkinkan EventBridge untuk mengambil peran:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Anda dapat memanggil titik akhir API Gateway dengan otorisasi IAM yang dikonfigurasi, tetapi peran tersebut opsional jika Anda belum mengonfigurasi otorisasi. Untuk informasi selengkapnya, lihat Amazon EventBridge dan AWS Identity and Access Management.

Jika akun lainnya berada di Wilayah yang sama dan telah memberikan izin kepada Anda, maka Anda dapat mengirim peristiwa ke akun tersebut.

Untuk informasi selengkapnya, lihat Mengirim dan menerima acara antara AWS akun di Amazon EventBridge.

Jika target Anda, seperti antrian Amazon SQS, menggunakan enkripsi AWS Key Management Service (AWS KMS), Anda harus menyertakan bagian berikut dalam kebijakan kunci KMS Anda:

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

AWS Batch antrian pekerjaan sebagai target

Parameter tertentu AWS Batch submitJob dapat dikonfigurasi melalui BatchParameters.

Lainnya dapat ditentukan dalam muatan acara. Jika muatan peristiwa (dilewatkan atau melalui InputTransformers) berisi kunci berikut, kunci tersebut dipetakan ke parameter submitJob permintaan:

  • ContainerOverrides: containerOverrides

    catatan

    Ini hanya mencakup perintah, lingkungan, memori, dan vcpus

  • DependsOn: dependsOn

    catatan

    Ini hanya mencakup JobID

  • Parameters: parameters

CloudWatch Log grup sebagai target

Jika Anda tidak menggunakan target InputTransformer dengan CloudWatch Logs, payload peristiwa digunakan sebagai pesan log, dan sumber peristiwa sebagai stempel waktu. Jika Anda menggunakan InputTransformer, template harus:

{"timestamp":<timestamp>,"message":<message>}

EventBridge menggabungkan entri yang dikirim ke aliran log; oleh karena itu, EventBridge dapat mengirimkan satu atau beberapa peristiwa ke aliran log, tergantung pada lalu lintas.

CodeBuild Proyek Sebagai Target

EventBridge mendukung build standar dan batch sebagai target.

Jika Anda menggunakan transformator input untuk membentuk peristiwa sumber agar sesuai dengan StartBuildRequest struktur sebelum dikirim ke CodeBuild target, parameter akan dipetakan 1-ke-1 dan dilewatkan ke codeBuild.StartBuild secara default.

Untuk meneruskan parameter ke codeBuild.StartBuildBatch sebagai gantinya, ubah peristiwa sumber agar StartBuildBatchRequest sesuai dengan struktur, dan tambahkan key/value pasangan berikut ke root peristiwa yang diubah:

"buildType": "BATCH"

Tugas Amazon ECS sebagai target

Jika Anda menggunakan InputTransformers untuk membentuk peristiwa input ke Target agar sesuai dengan RunTask TaskOverride struktur Amazon ECS, parameter akan dipetakan 1-ke-1 dan diteruskan ke. ecs.RunTask

Rencana respons Manajer Insiden sebagai target

Jika peristiwa yang cocok berasal dari CloudWatch Alarm, detail perubahan status alarm diisi ke dalam detail pemicu StartIncidentRequest panggilan ke Manajer Insiden.

Manajer Sistem Jalankan Perintah sebagai target

Saat Anda menentukan System Manager Run Command sebagai target, EventBridge memanggil SendCommand API atas nama Anda. Konfigurasikan target menggunakan RunCommandParameters, yang menentukan dokumen SSM untuk dijalankan dan instance atau tag target.

RunCommandParametersberisi bidang berikut:

  • RunCommandTargets— (Diperlukan) Daftar pasangan kunci-nilai yang menentukan instance target. Gunakan Key set ke InstanceIds dengan daftar ID instance, atau Key setel ke tag:tag-name dengan nilai tag untuk menargetkan instance berdasarkan tag. Anda dapat menentukan antara 1 dan 5 target perintah run.

Untuk menentukan dokumen SSM mana yang akan dijalankan dan meneruskan parameter ke sana, gunakan Input bidang pada Target objek. InputNilai harus berupa objek JSON dengan struktur berikut:

{ "DocumentName": "document-name", "DocumentVersion": "version", "Parameters": { "parameter-key": ["parameter-value"] } }

Di mana:

  • DocumentName— Nama atau ARN dokumen SSM yang akan dijalankan.

  • DocumentVersion— (Opsional) Versi dokumen. Jika dihilangkan, versi default digunakan.

  • Parameters— (Opsional) Peta nama parameter ke array nilai, cocok dengan parameter yang ditentukan dalam dokumen SSM.

Misalnya, AWS CLI perintah berikut membuat aturan yang menjalankan AWS-RunShellScript dokumen pada instance tertentu ketika EventBridge acara cocok:

aws events put-targets --rule "my-rule" --targets '[{ "Id": "ssm-target-1", "Arn": "arn:aws:ssm:region:account-id:document/AWS-RunShellScript", "RoleArn": "arn:aws:iam::account-id:role/EventBridgeSSMRole", "Input": "{\\"Parameters\\":{\\"commands\\":[\\"echo Hello from EventBridge\\"]}}", "RunCommandParameters": { "RunCommandTargets": [{ "Key": "InstanceIds", "Values": ["i-0123456789abcdef0"] }] } }]'
catatan

Bid Input ang pada Target objek digunakan untuk meneruskan nama dokumen dan parameter ke System Manager Run Command. Ini berbeda dari InputTransformer, yang mengubah payload acara. Saat menggunakan System Manager Run Command sebagai target, atur parameter dokumen Input dan tentukan instance target diRunCommandParameters.

Antrian Amazon SQS sebagai target

EventBridge tidak mendukung penggunaan antrian Amazon SQS yang dienkripsi dengan. Kunci milik AWS Ini termasuk target, serta antrian Amazon SQS yang ditentukan sebagai antrian surat mati untuk target. Untuk informasi selengkapnya Kunci milik AWS, lihat kunci yang AWS dimiliki di Panduan AWS Key Management Service Pengembang.