本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
邊緣函數日誌
您可以使用 Amazon CloudWatch 日誌來獲取邊緣函數的日誌,包括 Lambda @Edge 和CloudFront 函數。您可以使用 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 訊,請參閱使用 Amazon CloudFront 監控指標 CloudWatch。
-
如需將資料傳送至 CloudWatch 記錄檔所需權限的相關資訊,請參閱設定身分與存取權管理權限和角色 @Edge。
-
如需將記錄新增至 Lambda@Edge 函數的資訊,請參閱 AWS Lambda 開發人員指南中的 Node.js 中的AWS Lambda 函數日誌記錄或 Python 中的AWS Lambda 函數日誌記錄。
-
如需 CloudWatch 日誌配額 (先前稱為限制) 的相關資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的 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
行結尾。START
和 END
行之間是函數中 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-type
、x-edge-response-result-type
和 x-edge-detailed-result-type
欄位中。