View a markdown version of this page

Mengirim Acara ke Acara CloudWatch Amazon - AWS SDK untuk JavaScript

AWS SDK untuk JavaScript V2 telah mencapai akhir dukungan. Kami menyarankan Anda bermigrasi ke AWS SDK untuk JavaScript v3. Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat pengumuman ini.

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

Mengirim Acara ke Acara CloudWatch Amazon

JavaScript code example that applies to Node.js execution

Contoh Node.js kode ini menunjukkan:

  • Cara membuat dan memperbarui aturan yang digunakan untuk memicu peristiwa.

  • Cara menentukan satu atau lebih target untuk menanggapi suatu peristiwa.

  • Cara mengirim peristiwa yang dicocokkan dengan target untuk ditangani.

Skenario

CloudWatch Events memberikan aliran peristiwa sistem yang hampir real-time yang menggambarkan perubahan sumber daya Amazon Web Services ke salah satu dari berbagai target. Dengan menggunakan aturan sederhana, Anda dapat mencocokkan peristiwa dan merutekan mereka ke satu atau lebih fungsi atau aliran target.

Dalam contoh ini, serangkaian Node.js modul digunakan untuk mengirim acara ke Ev CloudWatch ents. Node.js Modul menggunakan SDK JavaScript untuk mengelola instance menggunakan metode kelas CloudWatchEvents klien berikut:

Untuk informasi selengkapnya CloudWatch tentang Acara, lihat Menambahkan A PutEvents cara dengan di Panduan CloudWatch Pengguna Acara Amazon.

Tugas Prasyarat

Untuk mengatur dan menjalankan contoh ini, Anda harus menyelesaikan tugas ini terlebih dahulu:

Gunakan kebijakan peran berikut saat membuat peran IAM.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "CloudWatchEventsFullAccess", "Effect": "Allow", "Action": "events:*", "Resource": "*" }, { "Sid": "IAMPassRoleForCloudWatchEvents", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets" } ] }

Gunakan hubungan kepercayaan berikut saat membuat peran IAM.

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

Membuat Aturan Terjadwal

Buat Node.js modul dengan nama filecwe_putrule.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek AWS.CloudWatchEvents layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menentukan aturan terjadwal baru, yang meliputi berikut ini:

  • Nama untuk aturan

  • ARN dari peran IAM yang Anda buat sebelumnya

  • Ekspresi untuk menjadwalkan pemicu aturan setiap lima menit

Panggil putRule metode untuk membuat aturan. Panggilan balik mengembalikan ARN dari aturan baru atau yang diperbarui.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Name: "DEMO_EVENT", RoleArn: "IAM_ROLE_ARN", ScheduleExpression: "rate(5 minutes)", State: "ENABLED", }; cwevents.putRule(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.RuleArn); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cwe_putrule.js

Kode sampel ini dapat ditemukan di sini GitHub.

Menambahkan a AWS Lambda Fungsi Target

Buat Node.js modul dengan nama filecwe_puttargets.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek AWS.CloudWatchEvents layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menentukan aturan yang ingin Anda lampirkan target, termasuk ARN fungsi Lambda yang Anda buat. Pang putTargets gil metode objek AWS.CloudWatchEvents layanan.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Rule: "DEMO_EVENT", Targets: [ { Arn: "LAMBDA_FUNCTION_ARN", Id: "myCloudWatchEventsTarget", }, ], }; cwevents.putTargets(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cwe_puttargets.js

Kode sampel ini dapat ditemukan di sini GitHub.

Mengirim Acara

Buat Node.js modul dengan nama filecwe_putevents.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Acara, buat objek AWS.CloudWatchEvents layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mengirim acara. Untuk setiap acara, sertakan sumber acara, ARN dari sumber daya apa pun yang terpengaruh oleh acara, dan detail untuk acara tersebut. Pang putEvents gil metode objek AWS.CloudWatchEvents layanan.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatchEvents service object var cwevents = new AWS.CloudWatchEvents({ apiVersion: "2015-10-07" }); var params = { Entries: [ { Detail: '{ "key1": "value1", "key2": "value2" }', DetailType: "appRequestSubmitted", Resources: ["RESOURCE_ARN"], Source: "com.company.app", }, ], }; cwevents.putEvents(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Entries); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cwe_putevents.js

Kode sampel ini dapat ditemukan di sini GitHub.