(Terraform) 错误 403:项目 905986752003 之前未使用过 Cloud Run Admin API 或已禁用。通过访问 https://console.d 启用它

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"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

创建服务时出错: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"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

最后,我可以运行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"
}
Run Code Online (Sandbox Code Playgroud)

然后,您还需要添加带有“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
  ]
}
Run Code Online (Sandbox Code Playgroud)

否则,你会得到同样的错误:

创建服务时出错: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
  ]
}
Run Code Online (Sandbox Code Playgroud)

另外,您可以在启用Cloud Run API后重定向到的页面中找到服务名称“run.googleapis.com”

resource "google_project_service" "cloud_run_api" {
  service = "run.googleapis.com" // Service name
}
Run Code Online (Sandbox Code Playgroud)

因此,启用Cloud Run API后:

在此输入图像描述

您将被重定向到此页面:

在此输入图像描述

然后,您可以在详细信息部分找到服务名称“run.googleapis.com”

在此输入图像描述