[英]Is there an equivalent to omit in Terraform?
我正在處理我的 Terraform 代碼,我想使用相同的代碼,無論變量是否設置或等於""
。 但是,如果我在aws_vpc
模塊中傳遞帶有""
的變量,則會引發異常,說明需要有效的 cidr。
如果是 Ansible,我會使用| omit
| omit
filter 省略參數,如果未設置變量,則不將其傳遞給模塊。
有代碼。
module "server_vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "servers_vpc"
cidr = var.main_cidr
secondary_cidr = [var.secondary_cidr]
azs = var.azs
public_subnets = local.public_subnets
private_subnets = var.private_subnets
enable_nat_gateway = true
create_igw = true
}
在此代碼中,如果變量等於""
(默認值),則public_su.nets
等於[var.main_cidr]
,如果設置了變量,則public_su.nets
等於[var.main_cidr, var.secondary_cidr]
。
但是沒有像我想要的那樣工作的部分是帶有secondary_cidr = [var.secondary_cidr]
的行。
當變量包含有效的 cidr 時,它可以工作,但是當變量未設置且等於默認值""
時,Terraform 從 aws vpc 模塊中引發錯誤,解釋需要有效的 cidr。
所以我想要一種使用模塊創建此 vpc 的方法,但如果變量等於""
則不設置參數secondary_cidr
。
我希望我很清楚:)
根據此特定模塊的文檔, secondary_cidr
不是必需的參數。 在這種情況下,您不必提供空字符串。 您要么完全省略secondary_cidr
,要么將null
分配給它。 由於secondary_cidr
需要一個數組,因此空數組[]
很可能也可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.