部署Serverless Framework到AWS CloudFormation时SSM限流报错如何解决?
报错说明
Rate exceeded (Service: AWSSimpleSystemManagement; Status Code: 400; Error Code: ThrottlingException; Request ID: ....)
该报错是AWS Systems Manager(SSM)的API调用频率超出了AWS默认的服务限流阈值,通常由Serverless Framework部署时并发请求过高、单次部署涉及大量SSM参数操作导致。
永久解决方案
- 调低Serverless Framework并发API请求上限
在serverless.yml的provider配置段添加maxConcurrentApiRequests参数,将默认的10并发调低到3-5即可适配大多数场景,配置示例:
provider: name: aws maxConcurrentApiRequests: 5
- 提升SSM服务限流配额
在AWS支持中心提交服务配额提升申请,选择Systems Manager服务,对应配额项选择Parameter Store throughput,按自己的部署规模申请更高的每秒调用次数配额。 - 拆分大型部署栈
如果单栈包含的SSM参数、关联资源超过200个,建议拆分为多个独立栈或嵌套栈,分批次部署,降低单次部署的SSM API调用密度。 - 开启SSM高吞吐量模式
对于有高频SSM调用需求的项目,可以在AWS控制台Parameter Store设置页开启高吞吐量模式,开启后最高支持每秒1000次API调用。
临时规避方案
- 部署时开启自动重试
执行部署命令时添加--aws-retries参数,指定遇到限流错误时的自动重试次数,命令示例:sls deploy --aws-retries 10 - 错峰部署
避开AWS业务高峰时段(通常为工作日9:00-18:00)执行大规模部署,减少触发公共限流规则的概率。
内容的提问来源于stack exchange,提问作者Green Y.
相关产品推荐
相关产品推荐

