使用 AWS SAM CLI 对现有 Lambda 函数启用 Lambda Insights - Amazon CloudWatch

使用 AWS SAM CLI 对现有 Lambda 函数启用 Lambda Insights

按照以下步骤操作,使用 AWS SAM AWS CLI 对现有 Lambda 函数启用 Lambda Insights。

如果您尚未安装最新版本的 AWS SAM CLI,则必须先安装或升级到此版本。有关更多信息,请参阅安装 AWS SAM CLI

步骤 1:安装层

要使 Lambda Insights 扩展程序可用于所有 Lambda 函数,请使用 Lambda Insights 层的 ARN 向 SAM 模板的 Globals 部分添加一个 Layers 属性。下方示例所示为将该层用于 Lambda Insights 的初始版本。有关 Lambda Insights 扩展程序层的最新版本,请参阅 Lambda Insights 扩展程序的可用版本

Globals: Function: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"

若要仅为单个函数启用此层,请向该函数添加 Layers 属性,如本示例所示。

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"

步骤 2:添加托管式策略

对每个函数均需添加 CloudWatchLambdaInsightsExecutionRolePolicy IAM 策略。

AWS SAM 不支持全局策略,因此您必须对每个函数单独启用这些策略,如本示例所示。有关全局策略的更多信息,请参阅全局策略部分

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Policies: - CloudWatchLambdaInsightsExecutionRolePolicy

本地调用

AWS SAM CLI 支持 Lambda 扩展程序。但每个在本地执行的调用都会重置运行时环境。由于运行时在未发生关闭事件的情况下重新启动,Lambda Insights 数据将无法从本地调用中获得。有关更多信息,请参阅版本 1.6.0 - 添加对 AWS Lambda 扩展程序的本地测试支持

故障排除

要排除 Lambda Insights 的安装问题,请将以下环境变量添加到 Lambda 函数中以启用调试日志记录。

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: LAMBDA_INSIGHTS_LOG_LEVEL: info