使用 CloudWatch 進行監控和故障排除



在 AWS Lambda 中建立的函式由 Amazon CloudWatch 監控。它有助於記錄觸發 Lambda 函式時對其發出的所有請求。

假設以下程式碼已上傳到 AWS Lambda,函式名稱為 **lambda and cloudwatch**。

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");    
   callback(null, 'Hello from Lambda');
};

測試或觸發函式時,您應該在 CloudWatch 中看到一個條目。為此,請轉到 AWS 服務並單擊 CloudWatch。

Click Cloudwatch

從左側選擇日誌。

Select Left Side

單擊 **日誌** 後,它包含您帳戶中建立的 AWS Lambda 函式的 **日誌組**。選擇任何 AWS Lambda 函式並檢查詳細資訊。在這裡,我們指的是名為 **lambdaandcloudwatch** 的 Lambda 函式。此處顯示新增到 Lambda 函式的日誌,如下所示:

Log Groups

現在,讓我們向 Lambda 函式新增 S3 觸發器,並檢視 CloudWatch 中的日誌詳細資訊,如下所示:

S3 Trigger

讓我們更新 AWS Lambda 程式碼以顯示上傳的檔案和儲存桶名稱,如下面的程式碼所示:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].s3.bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

現在,在 **s3storetestlambdaEventbucket** 中新增檔案,如下所示:

S3 Store Test

上傳檔案後,AWS Lambda 函式將被觸發,並且來自 Lambda 程式碼的控制檯日誌訊息將顯示在 CloudWatch 中,如下所示:

Cloudwatch Display

如果出現任何錯誤,CloudWatch 將顯示錯誤詳細資訊,如下所示:

Cloudwatch Details

請注意,我們在 AWS Lambda 程式碼中錯誤地引用了儲存桶名稱,如下所示:

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

事件中的儲存桶名稱引用錯誤。因此,我們應該看到 CloudWatch 中顯示的錯誤,如下所示:

Error Displayed

CloudWatch 指標

可以在指標中檢視 Lambda 函式執行的詳細資訊。單擊左側顯示的 **指標**。

Metrics Displayed

All Metrics

lambda 函式 **lambdaandcloudwatch** 的圖形詳細資訊如下所示:

Graphed Metrics

Graph Details Graph Details Lambda

它提供了 Lambda 函式執行的持續時間、呼叫次數以及 Lambda 函式的錯誤等詳細資訊。

廣告