在 Amazon CloudWatch 日誌中使用訂閱篩選器 - AWS SDK for JavaScript

我們宣布了即將推 end-of-support 出的 AWS SDK for JavaScript v2。我們建議您移轉至 AWS SDK for JavaScript v3。有關日期,其他詳細信息以及如何遷移的信息,請參閱鏈接的公告。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon CloudWatch 日誌中使用訂閱篩選器

JavaScript code example that applies to Node.js execution

這個 Node.js 程式碼範例會說明:

  • 如何在記錄檔中建立及刪除 CloudWatch 記錄事件的篩選器。

使用案例

訂閱可從 CloudWatch 日誌存取日誌事件的即時摘要,並將該摘要傳遞至其他服務 (例如 Amazon Kinesis 串流)AWS Lambda,或用於自訂處理、分析或載入到其他系統。訂閱篩選器會定義用於篩選哪些記錄事件傳遞至您的AWS資源的模式。

在此範例中,會使用一系列 Node.js 模組來列出、建立和刪除 CloudWatch 記錄中的訂閱篩選器。記錄事件的目的地是 Lambda 函數。Node.js 模組會使用 SDK JavaScript 來管理使用用CloudWatchLogs戶端類別的下列方法的訂閱篩選器:

如需有關 CloudWatch 日誌訂閱的詳細資訊,請參閱 Amazon 日誌使用者指南中的使用訂閱即時處理 CloudWatch 日誌資料

先決條件任務

若要設定和執行此範例,您必須先完成這些任務:

您可以使用下列角色政策來建立 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": [ "*" ] } ] }

說明現有的訂閱篩選條件

以檔名 cwl_describesubscriptionfilters.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 CloudWatch 記錄檔,請建立AWS.CloudWatchLogs服務物件。建立 JSON 物件,其包括說明現有篩選條件所需的參數,包括日誌群組名稱和您要說明的篩選條件數量上限。呼叫 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); } });

若要執行範例,請在命令列中輸入以下內容。

node cwl_describesubscriptionfilters.js

您可以在這裡找到此範例程式碼 GitHub。

建立訂閱篩選條件

以檔名 cwl_putsubscriptionfilter.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 CloudWatch 記錄檔,請建立AWS.CloudWatchLogs服務物件。建立 JSON 物件,其中包含建立篩選器所需的參數,包括目的地 Lambda 函數的 ARN、篩選器名稱、用於篩選的字串模式,以及記錄群組的名稱。呼叫 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); } });

若要執行範例,請在命令列中輸入以下內容。

node cwl_putsubscriptionfilter.js

您可以在這裡找到此範例程式碼 GitHub。

刪除訂閱篩選條件

以檔名 cwl_deletesubscriptionfilters.js 建立一個 Node.js 模組。請務必依前述的內容來設定軟體開發套件。若要存取 CloudWatch 記錄檔,請建立AWS.CloudWatchLogs服務物件。建立 JSON 物件,其包括刪除篩選條件所需的參數,包括篩選名稱和日誌群組。呼叫 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); } });

若要執行範例,請在命令列中輸入以下內容。

node cwl_deletesubscriptionfilter.js

您可以在這裡找到此範例程式碼 GitHub。