You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform启停Cloud Run服务导致已部署服务被删除问题咨询

这是Cloud Run的预期设计行为,不是产品Bug,目前已有大量用户反馈过相同的现象。

  • GCP不同服务的API禁用后资源处理逻辑并不统一:GCE、Cloud SQL、Pub/Sub这类资源本身具备独立持久化属性,禁用对应API只会阻断新的API请求,不会修改或删除已创建的资源;而Cloud Run、Cloud Functions这类托管运行时服务,API禁用操作会被判定为用户不再需要该服务的所有关联资源,会启动内置的资源清理流程,清理后的资源重新启用API也无法恢复。
  • 你遇到的删除效果和Terraform的google_project_service资源默认行为有关:该资源的disable_on_destroy参数默认值为true,当该资源被触发销毁逻辑时(比如配置变更触发资源重建、手动执行terraform destroy操作),Terraform会自动调用接口禁用对应的Cloud Run API,进而触发资源清理。

如果需要避免后续出现同类问题,可以参考以下配置调整:

  1. 不要通过禁用Cloud Run API的方式停用单个服务,如有停用需求,直接调整对应Cloud Run服务的流量配置为0即可。
  2. 针对生产环境的google_project_service资源,添加disable_on_destroy = false参数,阻止Terraform意外触发API禁用,示例配置如下:
resource "google_project_service" "cloudrun" {
  project = var.project_id
  service = "run.googleapis.com"
  disable_on_destroy = false
}
  1. 操作API禁用前,先确认对应服务的禁用规则,避免误删生产资源。

内容的提问来源于stack exchange,提问作者Sarma Pasumarthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:15:08