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

Serverless部署后Lambda无日志及iamRoleStatements弃用问题咨询

问题解答

1. 弃用警告是否导致指标/日志缺失?

弃用警告本身不会直接引发Lambda无日志、Serverless Dashboard无指标的问题。这个警告仅提示配置格式的更新方向,只要最终IAM权限配置正确,核心功能不受影响。但如果修改配置过程中出错(比如你之前尝试iam.role.statements时的配置报错),可能导致Lambda执行角色缺少日志写入权限,进而引发日志和指标无法正常采集的问题。

2. 正确配置serverless.yml的IAM权限

Serverless Framework的IAM角色配置写法分版本,对应调整即可:

Serverless Framework v2及以下版本

继续使用provider.iamRoleStatements字段,示例配置:

provider:
  name: aws
  runtime: nodejs18.x
  region: us-east-1
  iamRoleStatements:
    - Effect: Allow
      Action:
        - logs:CreateLogGroup
        - logs:CreateLogStream
        - logs:PutLogEvents
      Resource: "arn:aws:logs:${self:provider.region}:${aws:accountId}:log-group:/aws/lambda/*:*"

Serverless Framework v3版本

使用provider.iam.role.statements层级结构,示例配置:

provider:
  name: aws
  runtime: nodejs18.x
  region: us-east-1
  iam:
    role:
      statements:
        - Effect: Allow
          Action:
            - logs:CreateLogGroup
            - logs:CreateLogStream
            - logs:PutLogEvents
          Resource: "arn:aws:logs:${self:provider.region}:${aws:accountId}:log-group:/aws/lambda/*:*"

你之前碰到的「unrecognized property 'iam.role.statements'」报错,大概率是因为当前使用的是v2版本,却误用了v3的配置写法。可以通过serverless --version命令查看版本,再对应调整配置。

3. 日志/指标缺失的额外排查点

  • 区域限制说明:你收到的「Warning: Lambda log collection is not supported in us-east-1」是Serverless Dashboard的限制——us-east-1区域无法通过Dashboard采集Lambda日志,但Lambda本身仍会将日志写入CloudWatch,可直接前往CloudWatch查看是否有日志生成。
  • 验证执行角色权限:确保Lambda执行角色拥有上述CloudWatch Logs的写入权限,否则Lambda无法生成日志。
  • 确认触发逻辑:检查Lambda的触发源(如API Gateway、事件桥等)是否配置正确,若Lambda未被调用,自然不会产生日志和指标。
  • 重新部署生效:修正配置后,执行serverless deploy重新部署服务,确保新配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:14:53