Я пытаюсь создать скрипт terraform, который принимает пользовательский ввод и выполняет соответственно.Я в основном хочу спросить, хочет ли пользователь статический IP-адрес в облачной платформе Google, если да, то прошейте ресурс «google_compute_instance» соответствующим образом, в противном случае отпустите его.
Совместное использование написанного мной кода:
variable "create_eip" {
description = "Enter 1 for true, 0 for false"
}
resource "google_compute_address" "external" {
count = "${var.create_eip}"
name = "external-ip",
address_type = "EXTERNAL",
}
resource "google_compute_instance" "compute-engine" {
name = "random",
machine_type = "f1-micro",
boot_disk {
initialize_params {
size = "10",
type = "pd-ssd",
image = "${data.google_compute_image.image.self_link}"
}
}
network_interface {
subnetwork = "default",
access_config {
nat_ip = "${google_compute_address.external.address}"
}
}
}
Я получаю здесь ошибку, когда пользователь вводит 0 в качестве ввода, элемент управления кодом по-прежнему переходит в "nat_ip =" $ {google_compute_address.external.address} ""
, из-за которогоЯ получаю эту ошибку:
- google_compute_instance.compute-engine: ресурс 'google_compute_address.external' не найден для переменной 'google_compute_address.external.address'.
Я также попробовал это таким образом, заменив
nat_ip = "${var.create_eip == "1" ? "${google_compute_address.external.address}" : ""}"
(если create_ip = 1, запустите "google_compute_address.external.address", иначе ничего не сделайте).
Но это не такработает как положено.