邊緣函數日誌 - Amazon CloudFront

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

邊緣函數日誌

您可以使用 Amazon CloudWatch 日誌來獲取邊緣函數的日誌,包括 Lambda @EdgeCloudFront 函數。您可以使用 CloudWatch 控制台或日 CloudWatch 誌 API 來訪問日誌。

重要

我們建議您使用這些記錄來瞭解內容要求的性質,而不是對所有要求進行完整記錄。 CloudFront 以最大的努力提供邊緣功能日誌。在實際處理請求之後,才可能長時間交付特定請求的日誌項目,在極少數的情況下,有可能完全不會交付日誌項目。從邊緣函數日誌省略日誌項目時,邊緣函數日誌中的項目數量與顯示於 AWS 帳單和使用量報告中的用量會不相符。

Lambda @Edge 日誌

Lambda @Edge 會自動將函數記錄傳送至 CloudWatch 記錄檔,並在執行函數的 AWS 區域 位置建立日誌串流。日誌群組名稱的格式為/aws/lambda/us-east-1.function-name,其中function-name是您在建立函數時提供給函數的名稱,也us-east-1是建立函數的 AWS 區域 地區碼。記錄群組名稱一律包含us-east-1,即使是您的函數執行的其他區域的記錄群組也一樣。

注意

Lambda@Edge 根據請求數量和日誌的大小節流日誌。

您必須檢閱正確的 CloudWatch 記錄檔, AWS 區域 才能查看 Lambda @Edge 函數記錄檔。若要查看 Lambda @Edge 函數執行的區域,請在 CloudFront 主控台中檢視函數的指標圖形。指標將依每個 AWS 區域進行顯示。在同一頁面中,您可以選擇一個區域,然後檢視該區域的日誌檔以調查問題。

若要進一步了解如何搭配 Lambda @Edge 函數使用 CloudWatch 日誌,請參閱下列內容:

CloudFront 函數日誌

如果 CloudFront 函數的代碼包含console.log()語句, CloudFront Functions 會自動將這些日誌行發送到 CloudWatch 日誌。如果沒有console.log()陳述式,則不會將任何資料傳送至 CloudWatch 記錄檔。

CloudFront 函數一律會在美國東部 (維吉尼亞北部) 區域 (us-east-1) 建立日誌串流,無論執行函式的節點為何。日誌群組名稱的格式為 /aws/cloudfront/function/FunctionName,其中 FunctionName 是您在建立函數時提供給函數的名稱。日誌串流名稱的格式為 YYYY/M/D/UUID

以下顯示傳送至 CloudWatch 記錄檔的記錄檔訊息範例。每一行都以唯一識別 CloudFront 請求的 ID 開頭。訊息以包含 CloudFront 發佈 ID 的START行開頭,並以一END行結尾。STARTEND 行之間是函數中 console.log() 陳述式產生的日誌行。

U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADAXZZ U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== Example function log output U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END
注意

CloudFront Functions CloudWatch 只會針對LIVE階段中為回應生產要求和回應而執行的函數傳送記錄檔。當您測試函數時, CloudFront 不會將任何日誌發送到 CloudWatch. 測試輸出包含有關錯誤、計算使用率和函數記錄檔 (console.log()陳述式) 的資訊,但這項資訊不會傳送至 CloudWatch。

CloudFront 函數使用 AWS Identity and Access Management (IAM) 服務連結角色,將記錄傳送到您帳戶中的 CloudWatch Logs。「服務連結角色」是一種直接連結至 AWS 服務的 IAM 角色。服務連結角色由服務預先定義,並包含服務代表您呼叫其他 AWS 服務所需的所有權限。 CloudFront 函數使用稱為AWSServiceRoleForCloudFrontLogger的服務連結角色。如需有關此角色的詳細資訊,請參閱 Lambda@Edge 的服務連結角色 (Lambda@Edge 會使用相同的服務連結角色)。

當函數因驗證錯誤或執行錯誤而失敗時,資訊會記錄在 CloudFront標準記錄即時記錄中。錯誤的相關資訊會記錄在 x-edge-result-typex-edge-response-result-typex-edge-detailed-result-type 欄位中。