3 google-cloud-platform terraform devops terraform-provider-gcp google-cloud-run
在GCP上,我应用了下面的Terraform代码来运行Cloud Run 服务“渲染器”:
resource "google_cloud_run_service" "renderer" {
  name     = "renderer"
  location = "asia-northeast1"
  template {
    spec {
      containers {
        image = "gcr.io/${var.project_id}/renderer:latest"
      }
    }
  }
}
但我收到了这个错误:
创建服务时出错:googleapi:错误 403:之前未在项目 905986752003 中使用 Cloud Run Admin API 或已禁用。通过访问 https://console.developers.google.com/apis/api/run.googleapis.com/overview?project=905986752003启用它 ,然后重试。如果您最近启用了此 API,请等待几分钟,以便该操作传播到我们的系统,然后重试。
因此,我访问了上面这个错误中显示的网址https://console.developers.google.com/apis/api/run.googleapis.com/overview?project=905986752003:
然后,启用Cloud Run API:
然后,再次应用此Terraform代码:
resource "google_cloud_run_service" "renderer" {
  name     = "renderer"
  location = "asia-northeast1"
  template {
    spec {
      containers {
        image = "gcr.io/${var.project_id}/renderer:latest"
      }
    }
  }
}
最后,我可以运行Cloud Run 服务“renderer”:
现在,我想使用Terraform代码启用Cloud Run API:
是否可以使用Terraform代码启用Cloud Run API?如果可以,如何使用Terraform代码启用Cloud Run API?
小智 7
是的,可以使用Terraform代码启用Cloud Run API。因此,您需要添加以下Terraform代码:
resource "google_project_service" "cloud_run_api" {
  service = "run.googleapis.com"
}
然后,您还需要添加带有“google_project_service.cloud_run_api”的“depends_on”块以等待启用Cloud Run API :
resource "google_cloud_run_service" "renderer" {
  name     = "renderer"
  location = "asia-northeast1"
  template {
    spec {
      containers {
        image = "gcr.io/${var.project_id}/renderer:latest"
      }
    }
  }
  depends_on = [ // Here
    google_project_service.cloud_run_api
  ]
}
否则,你会得到同样的错误:
创建服务时出错:googleapi:错误 403:之前未在项目 905986752003 中使用 Cloud Run Admin API 或已禁用。通过访问 https://console.developers.google.com/apis/api/run.googleapis.com/overview?project=905986752003启用它 ,然后重试。如果您最近启用了此 API,请等待几分钟,以便该操作传播到我们的系统,然后重试。
这是完整的Terrafrom代码:
resource "google_project_service" "cloud_run_api" {
  service = "run.googleapis.com"
}
resource "google_cloud_run_service" "renderer" {
  name     = "renderer"
  location = "asia-northeast1"
  template {
    spec {
      containers {
        image = "gcr.io/${var.project_id}/renderer:latest"
      }
    }
  }
  depends_on = [
    google_project_service.cloud_run_api
  ]
}
另外,您可以在启用Cloud Run API后重定向到的页面中找到服务名称“run.googleapis.com”:
resource "google_project_service" "cloud_run_api" {
  service = "run.googleapis.com" // Service name
}
因此,启用Cloud Run API后:
您将被重定向到此页面:
然后,您可以在详细信息部分找到服务名称“run.googleapis.com”:
| 归档时间: | 
 | 
| 查看次数: | 3672 次 | 
| 最近记录: |