Chalice部署创建Lambda函数挂起后报ConnectionClosedError超时怎么解决?
Chalice部署Lambda连接关闭故障排查方案
该错误为AWS SDK(botocore)向eu-central-1区Lambda服务端发起函数创建请求时,连接提前中断导致的,可按以下步骤依次排查:
1. 网络层面排查
- 测试本地到对应区域Lambda端点的连通性,执行命令:
curl -v https://lambda.eu-central-1.amazonaws.com/ping
如果无法返回200响应,说明本地网络、防火墙、代理拦截了AWS API请求,先修复网络连通性再重试。 - 如果你使用代理访问AWS,检查AWS配置文件
~/.aws/config的代理参数是否正确,也可以临时关闭代理重试部署。 - 调高AWS SDK的超时和重试阈值,执行部署时添加环境变量:
AWS_MAX_ATTEMPTS=10 AWS_CONNECTION_TIMEOUT=60 chalice deploy
2. AWS侧资源排查
- 检查对应区域CloudFormation控制台,删除状态异常的Chalice关联栈(默认栈名和应用+阶段名一致,此处为
test-dev),Chalice依赖CloudFormation管理资源,栈状态异常会导致后续部署卡住。 - 检查IAM角色
test-dev的权限配置,确认角色具备Lambda函数创建、CloudWatch日志写入、EventBridge定时规则配置的完整权限,权限不足会导致Lambda API静默拒绝请求触发超时。 - 检查eu-central-1区Lambda服务配额,确认函数数量、并发配额未达到上限,配额不足会导致函数创建请求被阻塞中断。
3. Chalice本地配置排查
- 检查
.chalice/config.json中的定时任务配置,确认periodic_task的cron表达式、内存超时等参数没有语法错误,无效配置会导致Lambda API解析请求时出错断连。 - 删除本地
.chalice/deployments目录清除历史部署缓存,避免旧的部署状态文件导致异常请求,之后重新执行部署。
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

