AWS Lambda 會自動替您監控 Lambda 函數,並通過 Amazon CloudWatch 報告各項指標。為幫助您診斷函數中的問題,Lambda 會記錄您的函數處理的所有請求,並通過 Amazon CloudWatch Logs 自動存儲您的代碼生成的日志。
您可以在代碼中插入日志記錄語句來幫助驗證代碼是否按預期運行。Lambda 自動與 CloudWatch Logs 集成,並將您的代碼的所有日志推送到與 Lambda 函數關聯的 CloudWatch Logs 組(即名為 /aws/lambda/<函數名>
的組)。有關日志組和通過 CloudWatch 控制台訪問它們的更多信息,請參閱 Amazon CloudWatch 用戶指南 中的監控系統、應用程序和自定義日志文件。
您可以借助 Lambda 控制台、CloudWatch 控制台、AWS CLI 或 CloudWatch API 查看 Lambda 日志。下面的流程介紹如何使用 Lambda 控制台查看日志。
注意
使用 Lambda 日志沒有額外的費用;不過,會收取標准 CloudWatch Logs 費用。有關更多信息,請參閱 CloudWatch 定價。
使用 Lambda 控制台查看日志
-
打開 Lambda 控制台。
-
打開 Lambda 控制台 函數頁面。
-
選擇 Monitoring。
所示為 Lambda 函數指標的圖形化表示。
-
選擇查看 CloudWatch 中的日志。
Lambda 使用您的函數的權限將日志上傳到 CloudWatch Logs。如果您未在控制台中看到日志,請檢查您的執行角色權限。
AWS Lambda 執行角色
AWS Lambda 函數的執行角色授予該函數訪問 AWS 服務和資源的權限。您在創建函數時提供該角色,當您的函數被調用時,Lambda 代入該角色。您可以創建一個有權將日志發送到 Amazon CloudWatch 並將跟蹤數據上傳到 AWS X-Ray 的開發執行角色。
創建執行角色
-
打開 IAM 控制台中的“角色”頁面。
-
選擇 Create role (創建角色)。
-
創建具有以下屬性的角色:
-
可信任的實體 – AWS Lambda。
-
權限 – AWSLambdaBasicExecutionRole、AWSXrayWriteOnlyAccess
-
角色名稱 –
lambda-role
-
可以隨時在函數的執行角色中添加或刪除權限,或配置您的函數以使用不同的角色。為您的函數使用 AWS 開發工具包調用的任何服務以及為 Lambda 用來啟用可選功能的服務添加權限。
以下托管策略提供使用 Lambda 功能所需的權限:
-
AWSLambdaBasicExecutionRole – 將日志上傳到 CloudWatch 的權限。
-
AWSLambdaKinesisExecutionRole – 讀取來自 Amazon Kinesis 數據流或使用者的事件的權限。
-
AWSLambdaDynamoDBExecutionRole – 讀取 Amazon DynamoDB 流記錄的權限。
-
AWSLambdaSQSQueueExecutionRole – 讀取 Amazon Simple Queue Service (Amazon SQS) 隊列消息的權限。
-
AWSLambdaVPCAccessExecutionRole – 管理彈性網絡接口以將您的函數連接到 VPC 的權限。
-
AWSXrayWriteOnlyAccess – 將跟蹤數據上傳到 X-Ray 的權限。
當您使用事件源映射調用您的函數時,Lambda 將使用執行角色讀取事件數據。例如,Amazon Kinesis 的事件源映射從數據流讀取事件並將事件成批發送到您的函數。可以將事件源映射用於以下服務:
Lambda 從其讀取事件的服務
除了托管策略,Lambda 控制台還為創建包含與額外用例相關的權限的自定義策略提供模板。當您創建函數時,可以選擇利用來自一個或多個模板的權限創建新的執行角色。當您從藍圖創建函數,或者配置需要訪問其他服務的選項時,也會自動應用這些模板。示例模板可從本指南的 GitHub 存儲庫中找到。