使用 Lambda 函式日誌
AWS Lambda 會自動代為監控 Lambda 函式,協助您對故障進行疑難排解。您可以使用 Lambda 主控台、CloudWatch 主控台、AWS Command Line Interface (AWS CLI) 以及 CloudWatch API 來檢視 Lambda 函式的日誌。您也可以設定 Lambda 將日誌傳送至 Amazon S3 與 Firehose。
只要函式的執行角色具有必要許可,Lambda 就會擷取函式處理的所有請求的日誌,並將日誌傳送至預設目的地 Amazon CloudWatch Logs。您也可以透過 Lambda 主控台,將 Amazon S3 或 Firehose 設定為日誌記錄目的地。
-
CloudWatch Logs 是 Lambda 函式預設的日誌記錄目的地。CloudWatch Logs 具有即時日誌檢視與分析功能,且支援根據日誌資料建立指標與警示。
-
Amazon S3 在長期儲存方面具有經濟效益,且可透過 Athena 等服務對日誌進行分析。延遲通常較高。
-
Firehose 提供受管日誌串流功能,可將日誌串流至多種目的地。如需將日誌傳送至其他 AWS 服務 (例如 OpenSearch Service 或 Redshift Data API) 或第三方平台 (例如 Datadog、New Relic 或 Splunk),Firehose 可透過提供預先建置的整合功能來簡化該流程。您也可以將日誌串流至自訂 HTTP 端點,無需額外設定基礎結構。
選擇用於傳送日誌的服務目的地
在選擇要用作函式日誌的服務目的地時,建立考量下列關鍵因素:
-
成本管理因服務而異。Amazon S3 通常是最經濟實惠的長期儲存選擇,而 CloudWatch Logs 支援即時檢視日誌、處理日誌和設定提醒。Firehose 成本包括串流服務費用以及與所設定串流目的地相關的費用。
-
分析功能因服務而異。CloudWatch Logs 在即時監控方面表現出色,能夠與其他 CloudWatch 功能 (例如 Logs Insights 和 Live Tail) 原生整合。Amazon S3 與 Athena 等分析工具搭配運作良好,並且可以與各種服務整合,但可能需要額外的設定。Firehose 透過提供預先建置的整合功能,簡化將日誌直接串流至特定 AWS 服務 (例如 OpenSearch Service 和 Redshift Data API) 與支援的第三方平台 (例如 Datadog 和 Splunk) 的流程,從而減少設定工作。
-
設定程序與易用性因服務而異。CloudWatch Logs 是預設的日誌目的地,無需額外設定即可立即運作,支援透過 CloudWatch 主控台直觀地檢視與分析日誌。若需將日誌傳送至 Amazon S3,應先在 Lambda 主控台中執行部分初始設定,並設定儲存貯體許可。若需將日誌直接傳送至 OpenSearch Service 等服務或第三方分析平台,Firehose 可以簡化該流程。
設定日誌目的地
AWS Lambda 支援函式日誌傳送至多個目的地。本指南介紹了可用的日誌記錄目的地,能協助您視需求做出正確選擇。無論選擇哪種目的地,Lambda 皆能提供用於控制日誌格式、篩選條件與傳送方式的相關選項。
Lambda 支援 JSON 與純文字格式的函式日誌。JSON 結構化日誌能夠提升可搜尋性,支援自動化分析;而純文字日誌較為簡潔,可能降低儲存成本。您可以透過設定系統與應用程式日誌的日誌層級,控制 Lambda 傳送至所選目的地的日誌。篩選功能可協助您管理儲存成本,讓您在偵錯期間更輕鬆地找到相關的日誌項目。
如需每個目的地的詳細設定說明,請參閱下列各節:
設定 Lambda 函數的進階日誌記錄控制項
為了讓您更全面地掌控函式日誌的擷取、處理與使用方式,Lambda 提供了下列日誌記錄組態選項:
-
日誌格式 – 在純文字和結構化 JSON 格式之間為函式日誌選擇一種格式。
-
日誌層級 – 對於 JSON 結構化日誌,請選擇 Lambda 要傳送至 CloudWatch 之日誌的詳細層級,例如
FATAL、ERROR、WARN、INFO、DEBUG和TRACE。 -
日誌群組 – 選擇函式要將日誌傳送到的 CloudWatch 日誌群組。
若要進一步了解如何設定進階日誌記錄控制項,請參閱下列章節: