[英]Terraform - validate a variable based on another variable?
假設我有一個用於創建 AWS EC2 實例的 Terraform 模塊。
現在,我希望用戶能夠使用默認 VPC,或提供另一個 VPC ID。 所以我定義了以下輸入變量:
# variables.tf
variable "default_vpc" {
description = "Whether or not deploy the instance in the default VPC"
type = bool
}
variable "vpc_id" {
description = "VPC ID to deploy the instance in"
type = string
default = ""
}
現在,如果用戶為default_vpc
傳遞false
,我想確保他確實在vpc_id
中傳遞了一些值。 那可能嗎?
雖然無法使用輸入變量驗證來實現,但根據 Terraform 版本,您可以使用先決條件。
resource "null_resource" "vpc_precondition_validation" {
lifecycle {
precondition {
condition = (var.default_vpc == false && var.vpc_id != "") || (var.default_vpc == true && var.vpc_id == "")
error_message = "There has been error while validating the inputs for default_vpc and vpc_id variables."
}
}
}
在這種情況下,當我們為變量default_vpc
輸入false
並且我們沒有為vpc_id
變量提供值時,它將打印錯誤消息。
當default_vpc
設置為 true 時,它將允許vpc_id
變量為空字符串。
然后在需要vpc_id
的資源中,您可以使用三元條件,假設默認的 vpc id 屬性是從數據源中檢索到的:
...
vpc_id = var.default_vpc == false ? var.vpc_id : data.aws_vpc.default.id
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.