我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon CloudWatch 日誌中使用訂閱篩選器
這個 Node.js 程式碼範例會說明:
如何在記錄檔中建立及刪除 CloudWatch 記錄事件的篩選器。
使用案例
訂閱可從 CloudWatch 日誌存取日誌事件的即時摘要,並將該摘要傳遞至其他服務 (例如 Amazon Kinesis 串流)AWS Lambda,或用於自訂處理、分析或載入到其他系統。訂閱篩選器會定義用於篩選哪些記錄事件傳遞至您的AWS資源的模式。
在此範例中,會使用一系列 Node.js 模組來列出、建立和刪除 CloudWatch 記錄中的訂閱篩選器。記錄事件的目的地是 Lambda 函數。Node.js 模組會使用 SDK JavaScript 來管理使用用CloudWatchLogs
戶端類別的下列方法的訂閱篩選器:
如需有關 CloudWatch 日誌訂閱的詳細資訊,請參閱 Amazon 日誌使用者指南中的使用訂閱即時處理 CloudWatch 日誌資料。
先決條件任務
若要設定和執行此範例,您必須先完成這些任務:
安裝 Node.js。如需安裝 Node.js 的詳細資訊,請參閱 Node.js 網站
。 透過使用者登入資料建立共用組態檔。如需提供共用登入資料檔案的詳細資訊,請參閱 從共用登入資料檔案中在 Node.js 中載入登入資料。
建立 Lambda 函數做為日誌事件的目的地。您將需要用到此函數的 ARN。如需設定 Lambda 函數的詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南AWS Lambda中的訂閱篩選器。
建立 IAM 角色,其政策授予呼叫您建立的 Lambda 函數的權限,並授予對 CloudWatch 記錄的完整存取權,或將下列政策套用至您為 Lambda 函數建立的執行角色。如需有關建立 IAM 角色的詳細資訊,請參閱 IAM 使用者指南中的建立角色以將許可委派給AWS服務。
您可以使用下列角色政策來建立 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
您可以在這裡
建立訂閱篩選條件
以檔名 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
您可以在這裡
刪除訂閱篩選條件
以檔名 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
您可以在這裡