You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Serverless配置中添加CloudWatch Lambda Insights?支持自动配置吗?

自动配置CloudWatch Lambda Insights的解决方案

嘿,你说得对,tracing: lambda: true确实只负责启用AWS X-Ray的追踪功能,要自动配置CloudWatch Lambda Insights,还得在模板里加几处关键配置——完全不用手动去控制台操作,部署时就能自动生效。

下面分两种常用的基础设施即代码场景给你具体配置方案:

1. AWS SAM/CloudFormation 配置方式

如果是用SAM或CloudFormation定义Lambda函数,你需要在函数的Properties节点中补充以下3项配置:

  • 添加Lambda Insights扩展层:每个AWS区域都有对应的官方层ARN,替换成你函数所在区域的ARN即可(大部分区域的账号ID都是580247275435,版本号推荐用最新稳定版)
  • 启用Insights环境变量:设置AWS_LAMBDA_INSIGHTS_ENABLED为true
  • 配置专属IAM权限:给Lambda执行角色绑定CloudWatch Lambda Insights的托管策略,或者手动添加必要权限

示例配置片段:

Resources:
  MyLambdaFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: MyBusinessFunction
      Runtime: python3.11
      Handler: app.lambda_handler
      CodeUri: ./src
      # 你已有的X-Ray追踪配置
      TracingConfig:
        Mode: Active
      # 添加Lambda Insights扩展层
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
      # 启用Insights的环境变量
      Environment:
        Variables:
          AWS_LAMBDA_INSIGHTS_ENABLED: true
      Role: !GetAtt MyLambdaExecutionRole.Arn

  MyLambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
        # 添加Insights专属托管权限策略
        - arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy

2. Serverless Framework 配置方式

如果你用Serverless Framework管理Lambda,直接在serverless.yml的函数配置块中补充层、环境变量和权限即可:

service: my-serverless-service

provider:
  name: aws
  runtime: python3.11
  region: us-east-1
  # 你已有的X-Ray追踪配置
  tracing:
    lambda: true

functions:
  businessHandler:
    handler: app.lambda_handler
    # 添加Insights扩展层
    layers:
      - arn:aws:lambda:us-east-1:580247275435:layer:LambdaInsightsExtension:14
    # 启用Insights环境变量
    environment:
      AWS_LAMBDA_INSIGHTS_ENABLED: true
    # 配置权限(直接用托管策略更省事)
    iamRoleStatements:
      - Effect: Allow
        Action: "*"
        Resource: "*"
        ManagedPolicyArns:
          - arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy

关键注意事项

  • 区域适配:上面示例用的是us-east-1的层ARN,其他区域只需替换us-east-1为你的目标区域即可,账号ID580247275435在绝大多数区域通用
  • 版本更新:层的版本号会持续迭代,建议定期替换为AWS官方发布的最新稳定版本
  • 权限最小化:如果不想用托管策略,可以手动添加cloudwatch:PutMetricData、logs:PutLogEvents等必要权限,遵循最小权限原则

配置完成后,每次部署Lambda函数时,CloudWatch Lambda Insights就会自动启用,无需再手动操作控制台。

内容的提问来源于stack exchange,提问作者imacbest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:41:31