AWS CodeBuild下载源码阶段频繁超时,请求解决方案
解决方案建议
1. 调整源码下载超时时间
CodeBuild默认的源码下载超时为3分钟,你可以直接修改这个值来适配Bitbucket的偶尔延迟:
- 控制台操作:进入CodeBuild项目配置 → 编辑项目 → 切换到「Source」标签页 → 找到「Source download timeout」选项,将默认的3分钟修改为更大的值(比如10分钟)后保存。
- CLI操作:执行以下命令(替换项目名和仓库地址):
aws codebuild update-project --name your-project-name --source '{"type": "BITBUCKET", "location": "https://your-bitbucket-repo-url.git", "timeoutInMinutes": 10}'
2. 启用Git浅克隆减少下载量
通过浅克隆只拉取最新的提交记录,大幅缩短源码下载时间,降低超时概率:
在CodeBuild项目的「Source」配置里,将「Git clone depth」设置为1(仅拉取最近1次提交),保存后即可生效。
3. 排查网络连接问题
如果你的CodeBuild项目部署在VPC内,需确认以下配置:
- VPC安全组允许出站访问Bitbucket的443端口(可直接放行所有HTTPS出站流量,或根据Bitbucket官方IP段精准配置)。
- 子网的网络访问控制列表(NACL)未限制出站的443流量。
- 若使用代理服务,需确保代理配置正确且能正常访问Bitbucket。
4. 配置自动重试机制
针对偶发的Bitbucket响应异常,可通过CloudWatch Events + Lambda实现构建失败后的自动重试:
- 创建CloudWatch事件规则,监听CodeBuild的
BUILD_FAILED事件,过滤事件详情中包含dial tcp ... i/o timeout的失败场景。 - 编写Lambda函数,调用CodeBuild的
StartBuildAPI触发对应项目的重试构建。 - 将Lambda函数关联到CloudWatch事件规则,实现异常场景下的自动重试。
内容的提问来源于stack exchange,提问作者Gabriel Cote
相关产品推荐
相关产品推荐

