gcloud beta run deploy部署失败:API已启用仍报无效操作错误
这种Cloud Run绑定Cloud SQL实例时碰到的诡异操作错误我之前也踩过坑,给你几个实际验证有效的解决思路:
重置gcloud CLI的本地状态
错误提示里的noop.DONE_OPERATION基本是本地CLI的操作缓存冲突导致的。先试试清除本地的认证状态重新登录:gcloud auth revoke --all gcloud auth login也可以重置Run相关的默认配置,避免残留的参数干扰:
gcloud config unset run/region gcloud config unset run/platform之后再完整带上所有参数重新执行部署命令。
确保Cloud SQL连接名格式绝对正确
--add-cloudsql-instances参数必须使用完整的实例连接名,格式是PROJECT_ID:REGION:INSTANCE_NAME,比如你的实例在us-central1,实例名是db,那应该写成$PROJECT:us-central1:db,要和Cloud Console里显示的实例连接名完全一致,不能省略地区部分。切换到稳定版gcloud run命令
Beta版本的命令偶尔会有未修复的bug,试试用稳定版的部署命令,参数和beta版基本一致:gcloud run deploy $PROJECT --image $IMAGE_NAME --platform=managed --region us-central1 --project $PROJECT --add-cloudsql-instances $PROJECT:us-central1:$SQLNAME确认所有依赖API都已正确启用
虽然你说已经启用了相关API,但可以用命令再核对一遍,避免漏开:gcloud services list --enabled --project $PROJECT | grep -E "(run|sql)"如果发现
run.googleapis.com、sqladmin.googleapis.com或者sql-component.googleapis.com有缺失,执行下面的命令补全:gcloud services enable run.googleapis.com sqladmin.googleapis.com sql-component.googleapis.com --project $PROJECT更新gcloud CLI到最新版本
旧版本的CLI可能存在已知的操作冲突bug,执行更新命令:gcloud components update更新完成后再重新尝试部署。
如果以上方法都没用,大概率是Google Cloud的临时服务异常,可以等10-15分钟再试,或者通过Cloud Console手动部署一次,确认是否是CLI独有的问题。
内容的提问来源于stack exchange,提问作者Matt Wlazlo

