跳至內容

如何使用 CloudWatch Logs 來確定 Lambda 函式是否逾時?

1 分的閱讀內容
0

我的 AWS Lambda 函式遇到間歇性錯誤,我想使用 Amazon CloudWatch Logs 來確定函式是否逾時。

解決方法

當 Lambda 函式調用時間逾時時,失敗調用的 CloudWatch Logs 中會顯示任務逾時錯誤訊息,而不是錯誤訊息。當您檢閱 Lambda 函式的 CloudWatch 日誌群組時,請搜尋「任務逾時」。如果您僅在日誌中搜尋錯誤訊息,則搜尋只會傳回與程式碼相關的執行時期錯誤,而不會傳回調用逾時錯誤。如需詳細資訊,請參閱使用 Amazon CloudWatch 監控 AWS Lambda 錯誤

使用關聯逾時調用的請求 ID 來擷取每個調用逾時的完整日誌。

在開始之前,請確定 Lambda 函式具有將日誌上傳到 CloudWatch Logs 所需的 AWS Identity and Access Management (IAM) 權限

取得逾時調用的請求 ID

請完成下列步驟:

  1. 開啟 Lambda console (Lambda 主控台)。
  2. 在導覽窗格中,選擇 Functions (函式)。
  3. 選取您的 Lambda 函式,然後選擇 Monitor (監控) 索引標籤。
  4. 選擇 View CloudWatch logs (檢視 CloudWatch Logs),以在 CloudWatch 主控台上開啟該函式的日誌組詳細資料頁面。
  5. 選擇 View in Logs Insights (在 Logs Insights 中查看)。
  6. Logs Insights 查詢文字方塊中,輸入以下查詢,然後選擇 Run query (執行查詢):
    fields @timestamp, @requestId, @message, @logStream| filter @message like "Task timed out"
    | sort @timestamp desc
    | limit 100

回應會傳回任務逾時輸出中,逾時調用的請求 ID 清單。

如需詳細資訊,請參閱使用 CloudWatch Logs Insights 分析日誌資料

注意:對於大型日誌群組,請向 Logs Insights 查詢新增日期時間函式,以限制搜尋範圍。如需詳細資訊,請參閱 CloudWatch Logs Insights 語言查詢語法

對請求 ID 執行 CloudWatch Logs Insights 查詢

**注意:**CloudWatch Logs Insights 查詢會根據您查詢的資料量產生費用。如需詳細資訊,請參閱 Amazon CloudWatch 定價

使用逾時調用的請求 ID 來擷取每個調用逾時的完整日誌。您可以建立查詢,搜尋特定請求 ID 的所有日誌。如需詳細資訊,請參閱剖析日誌和結構化記錄

若要對您發現的任何逾時錯誤進行疑難排解,請參閱如何對 Lambda 函式調用逾時錯誤進行疑難排解?