GCP Apt Artifact Registry上传极慢且删除超时问题求助
GCP Artifact Registry Apt仓库上传/删除超时问题排查方案
问题背景
我维护的CI/CD系统负责将大量大型deb包上传至GCP的Apt类型Artifact Registry,此前单包上传平均耗时约10秒,但从昨日起,该仓库的所有上传命令都会挂起直至超时(超30分钟)或被终止;同时删除仓库内包的操作也会超时失败。新建仓库则可正常上传,无超时问题。
已尝试操作
- 已将gcloud更新至最新版本:
Google Cloud SDK 409.0.0 alpha 2022.11.04 beta 2022.11.04 bq 2.0.81 bundled-python3-unix 3.9.12 core 2022.11.04 gcloud-crc32c 1.0.0 gsutil 5.16 - 尝试删除包清理仓库,使用命令:
收到错误:gcloud artifacts packages delete --location={LOCATION} --project {PROJECT} --repository={REPOSITORY} {PACKAGE} --verbosity=debug"message": "Deadline expired before operation could complete." - 上传命令:
gcloud artifacts apt upload ${ARTIFACT_REPOSITORY} --location=${ARTIFACT_LOCATION} --project ${ARTIFACT_PROJECT} --source=${debPackageName} --verbosity=debug - 上传和删除命令的调试日志均重复出现:
DEBUG: https://artifactregistry.googleapis.com:443 "GET /v1/projects/{PROJECT}/locations/{LOCATION}/operations/f9885192-e1aa-4273-9b61-7b0cacdd5023?alt=json HTTP/1.1" 200 None
排查与解决步骤
1. 终止阻塞的后台操作
调试日志反复请求同一个operations资源,说明有后台操作长期处于运行状态,占用了仓库的操作资源。执行以下命令强制终止该操作:
gcloud artifacts operations cancel f9885192-e1aa-4273-9b61-7b0cacdd5023 --location={LOCATION} --project={PROJECT}
终止后等待5-10分钟,重试上传或删除操作。
2. 检查仓库元数据状态
使用命令查看仓库的核心状态信息,确认是否存在元数据异常:
gcloud artifacts repositories describe {REPOSITORY} --location={LOCATION} --project={PROJECT}
重点关注updateTime、sizeBytes、labels等字段,若发现数值异常(如sizeBytes远大于实际存储包的总大小),说明元数据可能损坏。
3. 临时迁移恢复CI/CD流程
如果终止操作无效,可通过迁移恢复业务:
- 导出原有仓库的包到GCS:先用
gcloud artifacts packages list获取所有包名,再用gcloud artifacts files list获取每个包的存储路径,最后用gsutil cp将包复制到GCS存储桶 - 在新仓库批量导入:循环执行
gcloud artifacts apt upload命令,导入GCS中的deb包 - 切换CI/CD流程到新仓库,同时提交工单处理旧仓库问题
4. 提交GCP支持工单
若以上步骤均无效,说明仓库存在底层服务异常:
- 收集上传/删除命令的全量调试日志
- 记录仓库ID、位置、异常开始时间
- 在GCP控制台提交支持工单,提供上述信息,请求工程师排查仓库元数据或服务状态问题
内容的提问来源于stack exchange,提问作者Alan Waite
相关产品推荐
相关产品推荐

