Terraform 现在支持云运行,如文档所述 here ,
我正在尝试下面的示例代码。
resource "google_cloud_run_service" "default" {
name = "tftest-cloudrun"
location = "us-central1"
provider = "google-beta"
metadata {
namespace = "my-project-name"
}
spec {
containers {
image = "gcr.io/cloudrun/hello"
}
}
}
尽管它没有错误地部署示例 hello 服务,但当我访问自动生成的 URL 时,它返回 403(Forbidden) 响应。
是否可以使用 terraform 创建公共(public)云运行 api?
(当我使用 GUI 创建相同的服务时,GCP 在“身份验证”部分下提供“允许未经身份验证的调用”选项,但在 terraform 文档中似乎没有等效选项......)
最佳答案
只需将以下代码添加到您的 terraform 脚本中,即可公开访问
data "google_iam_policy" "noauth" {
binding {
role = "roles/run.invoker"
members = [
"allUsers",
]
}
}
resource "google_cloud_run_service_iam_policy" "noauth" {
location = google_cloud_run_service.default.location
project = google_cloud_run_service.default.project
service = google_cloud_run_service.default.name
policy_data = data.google_iam_policy.noauth.policy_data
}
您还可以找到 here
关于google-cloud-platform - 无法使用 Terraform 在 Cloud Run 上部署公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57885584/