Cloud Run修订版本间网络配置无法继承问题咨询
问题解答
这不是Bug,是Cloud Code插件默认部署配置未复用现有Cloud Run服务网络设置导致的,以下是两种解决方法:
方法1:修改Cloud Code的部署配置文件
Cloud Code的部署行为由.vscode/cloudcode/deploy.yaml控制,默认配置未显式指定网络相关参数,导致每次部署都会使用Cloud Run的默认网络设置而非继承旧修订配置。你可以手动添加参数固定网络配置:
- 打开项目中的
.vscode/cloudcode/deploy.yaml文件 - 在
deploy.run节点下添加网络相关配置,示例如下:deploy: run: service: your-service-name region: your-region # 指定VPC Serverless访问连接器 vpc-connector: projects/your-project-id/locations/your-region/connectors/your-connector-name # 设置Ingress规则,可选值:all、internal、internal-and-cloud-load-balancing ingress: internal
保存配置后,后续通过Cloud Code部署时就会自动应用这些网络设置。
方法2:使用gcloud命令行配合本地镜像部署
如果不想修改配置文件,也可以在本地构建Docker镜像后,直接用gcloud命令行部署,该命令默认会保留现有服务的非镜像类配置(包括网络设置):
- 本地构建镜像并推送到Container Registry或Artifact Registry:
docker build -t gcr.io/your-project-id/your-image:tag . docker push gcr.io/your-project-id/your-image:tag - 执行部署命令更新现有服务:
gcloud run deploy your-service-name --image gcr.io/your-project-id/your-image:tag --region your-region
这个命令会自动继承旧修订的VPC连接器、Ingress等网络配置,无需重复指定。
补充说明
Buildpack部署时能继承配置,是因为Cloud Code在使用Buildpack部署时,默认采用了“更新现有服务并保留非镜像配置”的逻辑;而Docker本地构建部署的默认配置未启用该逻辑,因此需要手动调整配置或使用gcloud命令行来实现配置继承。
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

