Terraform 云 运行 服务 URL
Terraform Cloud Run Service URL
我像这样创建了一个云运行服务
terraform {
required_version = ">= 1.1.2"
required_providers {
google = {
source = "hashicorp/google"
version = "~> 4.1.0"
}
google-beta = {
source = "hashicorp/google-beta"
version = "~> 4.2.0"
}
}
}
provider "google" {
project = "main_project"
region = "us-central-1"
credentials = "<my-key-path>"
}
resource "google_cloud_run_service" "default" {
name = "cloudrun-srv"
location = "us-central1"
template {
spec {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
}
}
traffic {
percent = 100
latest_revision = true
}
}
我想使用输出变量保存创建的服务 url 的值 - https://default-hml2qtrgfq-uw.a.run.app。像
output "cloud_run_instance_url" {
value = google_cloud_run_service.default.url
}
这给了我一个错误:
地形规划
╷
│ 错误:不支持的属性
│
│ 在 main.tf 第 40 行,在输出“cloud_run_instance_url”中:
│ 40: 值 = google_cloud_run_service.default.url
│
│ 此对象没有名为“url”的参数、嵌套块或导出属性。
╵
如何获取此输出值并将其分配给变量,以便云调度程序等其他服务可以指向它?
如果您声明 url resource attribute 的输出,例如:
output "cloud_run_instance_url" {
value = google_cloud_run_service.default.status.0.url
}
然后它将在模块在命名空间 module.<declared module name>.cloud_run_instance_url
中声明的范围内用于解析(例如对其他模块的输入)。例如,如果这个模块是在根模块配置中声明的,那么它可以在根模块配置中其他地方的那个命名空间中解析。
我像这样创建了一个云运行服务
terraform {
required_version = ">= 1.1.2"
required_providers {
google = {
source = "hashicorp/google"
version = "~> 4.1.0"
}
google-beta = {
source = "hashicorp/google-beta"
version = "~> 4.2.0"
}
}
}
provider "google" {
project = "main_project"
region = "us-central-1"
credentials = "<my-key-path>"
}
resource "google_cloud_run_service" "default" {
name = "cloudrun-srv"
location = "us-central1"
template {
spec {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
}
}
traffic {
percent = 100
latest_revision = true
}
}
我想使用输出变量保存创建的服务 url 的值 - https://default-hml2qtrgfq-uw.a.run.app。像
output "cloud_run_instance_url" {
value = google_cloud_run_service.default.url
}
这给了我一个错误:
地形规划 ╷ │ 错误:不支持的属性 │ │ 在 main.tf 第 40 行,在输出“cloud_run_instance_url”中: │ 40: 值 = google_cloud_run_service.default.url │ │ 此对象没有名为“url”的参数、嵌套块或导出属性。 ╵
如何获取此输出值并将其分配给变量,以便云调度程序等其他服务可以指向它?
如果您声明 url resource attribute 的输出,例如:
output "cloud_run_instance_url" {
value = google_cloud_run_service.default.status.0.url
}
然后它将在模块在命名空间 module.<declared module name>.cloud_run_instance_url
中声明的范围内用于解析(例如对其他模块的输入)。例如,如果这个模块是在根模块配置中声明的,那么它可以在根模块配置中其他地方的那个命名空间中解析。