TFa*_*aws 1 if-statement terraform hcl
我有 4 个 env,qa 和 dev 使用一个 ID,uat 和 prod 使用另一个 ID。我正在尝试执行 if else,基本上,如果 env 是 dev 或 qa,则使用 id1,否则使用 id2。这是我尝试过的:
\nlocals{\n endpoint_id = "${var.env == "dev" || "qa" ? "id1" : "id2"}"\n}\nRun Code Online (Sandbox Code Playgroud)\n这就是我得到的:
\nError: Invalid operand\n\xe2\x94\x82 \n\xe2\x94\x82 on ssm-parameters.tf line 2, in locals:\n\xe2\x94\x82 2: endpoint_id = "${var.env == "dev" || "qa" ? "id1" : "id2"}"\n\xe2\x94\x82 \n\xe2\x94\x82 Unsuitable value for right operand: a bool is required.\nRun Code Online (Sandbox Code Playgroud)\n显然我不能在这里做“或”。我该怎么办呢?谢谢。
\n怎么样:
locals{
endpoint_id = length(regexall("dev|qa", var.env)) > 0 ? "id1" : "id2"
}
Run Code Online (Sandbox Code Playgroud)
这将检查是否var.env匹配dev或qa,输出是一个列表,如果存在某些匹配,则列表将至少有一个元素,否则为零。