Menggunakan Alarm Actions di Amazon CloudWatch - 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.

Menggunakan Alarm Actions di Amazon CloudWatch

JavaScript code example that applies to Node.js execution

Contoh kode Node.js ini menunjukkan:

  • Cara mengubah status instans Amazon EC2 Anda secara otomatis berdasarkan alarm. CloudWatch

Skenario

Dengan menggunakan tindakan alarm, Anda dapat membuat alarm yang secara otomatis menghentikan, menghentikan, mem-boot ulang, atau memulihkan instans Amazon EC2 Anda. Anda dapat menggunakan tindakan berhenti atau menghentikan saat Anda tidak lagi membutuhkan instance untuk dijalankan. Anda dapat menggunakan tindakan reboot dan memulihkan untuk secara otomatis me-reboot instance tersebut.

Dalam contoh ini, serangkaian modul Node.js digunakan untuk menentukan tindakan alarm CloudWatch yang memicu reboot instans Amazon EC2. Modul Node.js menggunakan SDK for JavaScript untuk mengelola instans Amazon EC2 menggunakan metode kelas klien berikut: CloudWatch

Untuk informasi selengkapnya tentang tindakan CloudWatch alarm, lihat Membuat Alarm untuk Berhenti, Menghentikan, Memulai Ulang, atau Memulihkan Instance di CloudWatch Panduan Pengguna 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": [ { "Effect": "Allow", "Action": [ "cloudwatch:Describe*", "ec2:Describe*", "ec2:RebootInstances", "ec2:StopInstances*", "ec2:TerminateInstances" ], "Resource": [ "*" ] } ] }

Konfigurasikan SDK untuk JavaScript dengan membuat objek konfigurasi global lalu menyetel Wilayah untuk kode Anda. Dalam contoh ini, Region diatur keus-west-2.

// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});

Membuat dan Mengaktifkan Tindakan pada Alarm

Buat modul Node.js dengan nama filecw_enablealarmactions.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch, buat objek AWS.CloudWatch layanan.

Buat objek JSON untuk menahan parameter untuk membuat alarm, menentukan ActionsEnabled sebagai true dan array ARN untuk tindakan yang akan dipicu alarm. Panggil putMetricAlarm metode objek AWS.CloudWatch layanan, yang membuat alarm jika tidak ada atau memperbaruinya jika alarm memang ada.

Dalam fungsi callback untukputMetricAlarm, setelah berhasil menyelesaikan membuat objek JSON yang berisi nama alarm. CloudWatch Panggil enableAlarmActions metode untuk mengaktifkan tindakan alarm.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); var params = { AlarmName: "Web_Server_CPU_Utilization", ComparisonOperator: "GreaterThanThreshold", EvaluationPeriods: 1, MetricName: "CPUUtilization", Namespace: "AWS/EC2", Period: 60, Statistic: "Average", Threshold: 70.0, ActionsEnabled: true, AlarmActions: ["ACTION_ARN"], AlarmDescription: "Alarm when server CPU exceeds 70%", Dimensions: [ { Name: "InstanceId", Value: "INSTANCE_ID", }, ], Unit: "Percent", }; cw.putMetricAlarm(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Alarm action added", data); var paramsEnableAlarmAction = { AlarmNames: [params.AlarmName], }; cw.enableAlarmActions(paramsEnableAlarmAction, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Alarm action enabled", data); } }); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cw_enablealarmactions.js

Kode contoh ini dapat ditemukan di sini GitHub.

Menonaktifkan Tindakan pada Alarm

Buat modul Node.js dengan nama filecw_disablealarmactions.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch, buat objek AWS.CloudWatch layanan. Buat objek JSON yang berisi nama CloudWatch alarm. Panggil disableAlarmActions metode untuk menonaktifkan tindakan untuk alarm ini.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); cw.disableAlarmActions( { AlarmNames: ["Web_Server_CPU_Utilization"] }, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } } );

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cw_disablealarmactions.js

Kode contoh ini dapat ditemukan di sini GitHub.