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

在AWS Lambda上运行Artillery负载测试时遇错误求助

Artillery AWS Lambda负载测试失败排查方案

已知信息:

  • 测试配置文件rediscache.yml在2023年9月可正常执行
  • 当前执行命令:artillery run rediscache.yml --platform aws:lambda --platform-opt region=us-east-1
  • 错误提示:IAM用户无lambda:CreateFunction权限(根据截图内容)

1. 修复IAM权限问题

这是当前报错的直接原因,需为执行测试的IAM身份(用户/角色)添加对应权限:

  • 至少包含以下权限:lambda:CreateFunction、lambda:InvokeFunction、lambda:DeleteFunction、iam:PassRole
  • 政策资源范围需覆盖目标区域(us-east-1)的Artillery相关Lambda函数,示例资源格式:arn:aws:lambda:us-east-1:你的AWS账号ID:function:artillery-*
  • 测试阶段可临时添加托管政策AWSLambdaFullAccess验证,生产环境建议配置最小权限政策

2. 校验Artillery及插件版本兼容性

2023年9月至今Artillery可能有版本更新,导致旧配置不兼容:

  • 执行artillery --version查看当前版本,对比2023年9月使用的版本
  • 若版本差异大,尝试降级到历史可用版本,例如:npm install -g artillery@2.0.0-rc.12(需根据实际历史版本调整)
  • 同步更新或重新安装Redis插件:npm install -g artillery-plugin-redis

3. 指定Lambda兼容运行时

AWS可能调整了Lambda默认运行时,导致Artillery依赖的Node.js版本不再被支持:

  • 在命令行添加运行时参数:artillery run rediscache.yml --platform aws:lambda --platform-opt region=us-east-1 --platform-opt runtime=nodejs18.x
  • 或在rediscache.yml的config段中添加平台配置:
    config:
      target: "redis://your-redis-endpoint:6379"
      phases:
        - duration: 60
          arrivalRate: 10
      platform:
        aws:lambda:
          runtime: nodejs18.x
      plugins:
        redis: {}
    

4. 验证Redis连接配置有效性

排查Redis服务的访问配置是否变更:

  • 确认rediscache.yml中target的Redis端点、端口是否正确
  • 若使用AWS ElastiCache,检查Lambda是否与Redis在同一VPC,安全组是否允许Lambda访问Redis端口(6379)
  • 若Redis启用了密码验证,需在配置中添加password字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:23:13