Menggunakan Filter Berlangganan di CloudWatch Log 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.

Menggunakan Filter Berlangganan di CloudWatch Log Amazon

JavaScript code example that applies to Node.js execution

Contoh kode Node.js ini menunjukkan:

  • Cara membuat dan menghapus filter untuk peristiwa log di CloudWatch Log.

Skenario

Langganan menyediakan akses ke umpan real-time peristiwa CloudWatch log dari Log dan mengirimkan umpan tersebut ke layanan lain, seperti aliran Amazon Kinesis AWS Lambda atau, untuk pemrosesan, analisis, atau pemuatan kustom ke sistem lain. Filter langganan menentukan pola yang akan digunakan untuk memfilter peristiwa log mana yang dikirimkan ke sumber daya AndaAWS.

Dalam contoh ini, serangkaian modul Node.js digunakan untuk membuat daftar, membuat, dan menghapus filter langganan di CloudWatch Log. Tujuan untuk peristiwa log adalah fungsi Lambda. Modul Node.js menggunakan SDK for JavaScript untuk mengelola filter langganan menggunakan metode kelas CloudWatchLogs klien berikut:

Untuk informasi selengkapnya tentang langganan CloudWatch Log, lihat Pemrosesan Data Log secara real-time dengan Langganan di Panduan Pengguna CloudWatch Log Amazon.

Tugas Prasyarat

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

  • Instal Node.js. Untuk informasi selengkapnya tentang menginstal Node.js, lihat situs web Node.js.

  • Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat. Memuat Kredensial di Node.js dari File Kredensial Bersama

  • Buat fungsi Lambda sebagai tujuan untuk peristiwa log. Anda harus menggunakan ARN dari fungsi ini. Untuk informasi selengkapnya tentang menyiapkan fungsi Lambda, lihat Filter Langganan dengan AWS Lambda di Panduan Pengguna CloudWatch Log Amazon.

  • Buat peran IAM yang kebijakannya memberikan izin untuk menjalankan fungsi Lambda yang Anda buat dan memberikan akses penuh ke CloudWatch Log atau menerapkan kebijakan berikut ke peran eksekusi yang Anda buat untuk fungsi Lambda. Untuk informasi selengkapnya tentang membuat peran IAM, lihat Membuat Peran untuk Mendelegasikan Izin ke AWS Layanan di Panduan Pengguna IAM.

Gunakan kebijakan peran berikut saat membuat peran IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "*" ] } ] }

Menjelaskan Filter Langganan yang Ada

Buat modul Node.js dengan nama filecwl_describesubscriptionfilters.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Log, buat objek AWS.CloudWatchLogs layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mendeskripsikan filter yang ada, termasuk nama grup log dan jumlah maksimum filter yang ingin Anda jelaskan. Panggil metode describeSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { logGroupName: "GROUP_NAME", limit: 5, }; cwl.describeSubscriptionFilters(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.subscriptionFilters); } });

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node cwl_describesubscriptionfilters.js

Kode contoh ini dapat ditemukan di sini GitHub.

Membuat Filter Langganan

Buat modul Node.js dengan nama filecwl_putsubscriptionfilter.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Log, buat objek AWS.CloudWatchLogs layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk membuat filter, termasuk ARN dari fungsi Lambda tujuan, nama filter, pola string untuk pemfilteran, dan nama grup log. Panggil metode putSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { destinationArn: "LAMBDA_FUNCTION_ARN", filterName: "FILTER_NAME", filterPattern: "ERROR", logGroupName: "LOG_GROUP", }; cwl.putSubscriptionFilter(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 cwl_putsubscriptionfilter.js

Kode contoh ini dapat ditemukan di sini GitHub.

Menghapus Filter Langganan

Buat modul Node.js dengan nama filecwl_deletesubscriptionfilters.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses CloudWatch Log, buat objek AWS.CloudWatchLogs layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk menghapus filter, termasuk nama filter dan grup log. Panggil metode deleteSubscriptionFilters.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the CloudWatchLogs service object var cwl = new AWS.CloudWatchLogs({ apiVersion: "2014-03-28" }); var params = { filterName: "FILTER", logGroupName: "LOG_GROUP", }; cwl.deleteSubscriptionFilter(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 cwl_deletesubscriptionfilter.js

Kode contoh ini dapat ditemukan di sini GitHub.