Mengirim Acara ke CloudWatch Acara Amazon - AWS SDK for JavaScript

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for JavaScript v2. Kami menyarankan Anda bermigrasi ke AWS SDK for JavaScript v3. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

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

Mengirim Acara ke CloudWatch Acara Amazon

JavaScript code example that applies to Node.js execution

Contoh kode Node.js ini menunjukkan:

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

  • Bagaimana mendefinisikan satu atau lebih target untuk menanggapi suatu peristiwa.

  • Cara mengirim peristiwa yang dicocokkan dengan target untuk ditangani.

Skenario

CloudWatch Acara memberikan aliran peristiwa sistem yang mendekati waktu nyata yang menjelaskan perubahan dalam sumber daya Amazon Web Services ke salah satu dari berbagai target. Dengan menggunakan aturan sederhana, Anda dapat mencocokkan acara dan meruteknya ke satu atau beberapa fungsi atau aliran target.

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

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

Tugas Prasyarat

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

Gunakan kebijakan peran berikut saat membuat peran IAM.

{ "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.

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

Membuat Aturan Terjadwal

Buat modul Node.js 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. Callback 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 contoh ini dapat ditemukan di sini GitHub.

Menambahkan Target AWS Lambda Fungsi

Buat modul Node.js 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 dari fungsi Lambda yang Anda buat. Panggil putTargets 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 contoh ini dapat ditemukan di sini GitHub.

Mengirim Acara

Buat modul Node.js 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 tersebut, dan detail untuk acara tersebut. Panggil putEvents 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 contoh ini dapat ditemukan di sini GitHub.