sor*_*ora 7 google-cloud-platform terraform terraform-provider-gcp
Terraform 现在支持云运行,如此处所述,我正在尝试下面的示例代码。
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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
尽管它部署示例 hello 服务没有错误,但当我访问自动生成的 URL 时,它返回 403(禁止)响应。是否可以使用 terraform 创建公共云运行 api?
(当我使用 GUI 创建相同的服务时,GCP 在“身份验证”部分下提供“允许未经身份验证的调用”选项,但 terraform 文档中似乎没有等效的选项...)
jma*_*ndt 12
只需将以下代码添加到您的 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
}
Run Code Online (Sandbox Code Playgroud)
您也可以在这里找到这个
这里的部署仅基于 Knative 服务规范。Cloud Run 托管实现了这些规范,但有自己的内部行为,例如与 IAM 链接的角色检查(对于 Knative 和 K8S 集群来说不可能,这被私有/公共服务取代)。Cloud Run 上托管的命名空间是 projectId,这是一种识别项目的解决方法,而不是真正的 K8S 命名空间。
因此,我从 Google(我是 Cloud Run Alpha 测试员)得到的最新消息告诉我们,他们正在与 Deployment Manager 和 Terraform 合作,将 Cloud Run 集成到其中。我没有截止日期,抱歉。
| 归档时间: |
|
| 查看次数: |
4228 次 |
| 最近记录: |