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

AWS SAM部署大量VPC Lambda时CloudFormation卡在CREATE_IN_PROGRESS如何解决

问题根因
  • 你当前为200+独立Lambda函数均配置了VPC访问权限,CloudFormation全量部署时默认并行创建资源,每创建一个绑定VPC的Lambda,都会触发大量EC2接口调用(含子网、安全组校验的DryRun预检查请求、ENI接口操作请求),调用量超过EC2 API默认速率配额,就会出现你遇到的RequestLimitExceeded和DryRunOperation报错,部署流程卡住重试就会长期停留在CREATE_IN_PROGRESS状态。函数数量少时调用量未达阈值,因此可以正常部署。
  • 额外存在的配置问题:你在模板中定义了统一的Lambda执行角色LambdaRole,但未在全局配置或函数配置中关联该角色,SAM会默认为每个Lambda单独生成独立的执行角色,200+函数对应200+次IAM资源创建操作,进一步放大了API调用量,加重限流问题。
修复方案

最优方案:重构Lambda架构,合并单接口独立函数

  • 将所有REST接口逻辑整合为单个Node.js项目,使用Express、Koa等轻量Web框架做路径路由,所有接口共用同一个Lambda函数,仅需1次VPC资源校验、1个执行角色,从根源消除大规模资源创建带来的API限流问题,后续新增接口也无需修改CloudFormation模板的资源定义,部署速度可提升数十倍。

若需保留单接口单函数的现有架构,可按优先级选择以下方案:

  1. 统一复用公共配置,减少不必要的资源创建
    在Globals.Function下新增Role配置,让所有Lambda复用你已定义的执行角色,避免SAM为每个函数单独生成角色:
Globals:
  Function:
    Timeout: 3   
    Role: !GetAtt LambdaRole.Arn # 新增这一行
    VpcConfig:
        SecurityGroupIds:
          - sg-041f2459dcd921e8e
        SubnetIds:
          - subnet-038xxx2d
          - subnet-c4dxxxcb
          - subnet-af5xxxc8
  1. 限制CloudFormation部署的并行资源创建数
    部署时给sam deploy命令添加并行数限制参数,降低同一时间的API调用量,避免触发限流,可根据实际部署情况调整数值(建议从10开始测试):
    sam deploy --max-concurrent-events 10
  2. 申请提升EC2 API配额
    如果以上调整后仍触发限流,可前往AWS支持中心提交工单,申请提升EC2相关API(DescribeNetworkInterfaces、CreateNetworkInterface、安全组/子网相关校验接口)的速率配额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:21:02