运行cdk deploy部署Textract流水线时S3BatchProcessor Lambda创建失败
Lambda预留并发导致CDK部署失败的解决方案
错误信息
| CREATE_FAILED | AWS::Lambda::Function | S3BatchProcessor6C619AEA
Resource handler returned message: "为函数指定的ReservedConcurrentExecutions使账户的UnreservedConcurrentExecution低于最小值[10]。(Service: Lambda, Status Code: 400, Request ID: 7f6d1305-e248-4745-983e-045eccde562d)" (RequestToken: 9c84827d-502e-5697-b023-e0be45f8d451, HandlerErrorCode: InvalidRequest)
问题原因
AWS Lambda有硬性规则:账户的未预留并发数必须至少保留10个。当你给某个Lambda函数设置了ReservedConcurrentExecutions后,账户总并发配额减去所有函数的预留并发总和,结果不能小于10,否则就会触发这个创建失败的错误。
修复方案
- 调低目标函数的预留并发值:找到CDK代码里给
S3BatchProcessor6C619AEA配置的预留并发数,把数值改小,确保账户剩余未预留并发≥10。
举个TypeScript CDK的修改例子:const s3BatchProcessor = new lambda.Function(this, 'S3BatchProcessor', { // 其他函数配置... reservedConcurrentExecutions: 40, // 调整这个值,保证总预留并发 ≤ 账户总配额 - 10 }); - 提升账户总并发配额:如果业务确实需要更多预留并发,可以通过AWS控制台提交支持工单,申请提高Lambda账户的总并发配额,这样预留后剩下的未预留并发仍能满足≥10的要求。
- 取消预留并发设置:如果这个函数不需要固定的预留并发,直接删掉
reservedConcurrentExecutions这一行配置,让函数使用账户的共享未预留并发池即可。
内容的提问来源于stack exchange,提问作者Dr.V
相关产品推荐
相关产品推荐

