terraform 一个变量中的多个 if else 语句
terraform multiple if else statement in one variable
我们有一个用于生产和非生产的文件夹,但是,我们想将其拆分为两个单独的文件夹。我遇到的一个问题是多个 if-else 语句,如下所示:
elastic_search_host = "${var.account_name == "prod" ? var.es_friendly_name_part : var.dedicated_es_cluster ? "${var.environment}-${var.es_friendly_name_part}" : "nonprod-${var.es_friendly_name_part}"}.${lookup(var.route53_domains, var.account_name)}"
我理解第一部分说的,如果帐户是 prod 则使用 'es_friendly_name_part' 否则使用 'dedicated_es_cluster' 但在此之后我不明白什么是 prod 什么不是。
我假设这被拆分成另一个 if-else 语句说,also if prod then use
'"${var.environment}-${var.es_friendly_name_part}"'
否则使用
“非产品-${var.es_friendly_name_part}”
但是无论帐户如何使用最后的 .lookup 函数,还是这只是非生产?
另外,如果我想拆分它,以便它仅用于生产 - 所以不需要 if-else 我该怎么做?我需要连接或类似的东西吗?
你的if
相当于(伪代码):
if var.account_name == "prod" then
var.es_friendly_name_part.${lookup(var.route53_domains, var.account_name)}
else
if var.dedicated_es_cluster != "" then
${var.environment}-${var.es_friendly_name_part}.${lookup(var.route53_domains, var.account_name)}
else
nonprod-${var.es_friendly_name_part}.${lookup(var.route53_domains, var.account_name)}
end
end
is the .lookup function at the end used regardless of account
在所有情况下都会执行。
split this so this is just used for production
如果你只有产品,那么你总是有第一个条件,结果是:
var.es_friendly_name_part.${lookup(var.route53_domains, var.account_name)}
我们有一个用于生产和非生产的文件夹,但是,我们想将其拆分为两个单独的文件夹。我遇到的一个问题是多个 if-else 语句,如下所示:
elastic_search_host = "${var.account_name == "prod" ? var.es_friendly_name_part : var.dedicated_es_cluster ? "${var.environment}-${var.es_friendly_name_part}" : "nonprod-${var.es_friendly_name_part}"}.${lookup(var.route53_domains, var.account_name)}"
我理解第一部分说的,如果帐户是 prod 则使用 'es_friendly_name_part' 否则使用 'dedicated_es_cluster' 但在此之后我不明白什么是 prod 什么不是。
我假设这被拆分成另一个 if-else 语句说,also if prod then use
'"${var.environment}-${var.es_friendly_name_part}"'
否则使用
“非产品-${var.es_friendly_name_part}”
但是无论帐户如何使用最后的 .lookup 函数,还是这只是非生产?
另外,如果我想拆分它,以便它仅用于生产 - 所以不需要 if-else 我该怎么做?我需要连接或类似的东西吗?
你的if
相当于(伪代码):
if var.account_name == "prod" then
var.es_friendly_name_part.${lookup(var.route53_domains, var.account_name)}
else
if var.dedicated_es_cluster != "" then
${var.environment}-${var.es_friendly_name_part}.${lookup(var.route53_domains, var.account_name)}
else
nonprod-${var.es_friendly_name_part}.${lookup(var.route53_domains, var.account_name)}
end
end
is the .lookup function at the end used regardless of account
在所有情况下都会执行。
split this so this is just used for production
如果你只有产品,那么你总是有第一个条件,结果是:
var.es_friendly_name_part.${lookup(var.route53_domains, var.account_name)}