Как использовать условие if else-if else в Terraform - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь изменить имя стека в зависимости от среды.Я попытался сделать следующее:

stack_name = "intl-${var.intl_region}-${var.intl_ctry}-${var.intl_env}-jk-${var.vanity_env == "-np" || var.vanity_env == "-dr"} ? "mstr" : "master"}"

, но получил следующую ошибку:

Ошибка: ошибка синтаксического анализа /build_workspace/workspace/GCM/PIPE_JENKINS/main.tf: в 33:25: ожидаемый вложенный объект: LBRACE получил: ASSIGN

Может кто-нибудь помочь мне, как я могу изменить имя стека в зависимости от среды?

Это должно быть как:

if a == a || b ? "c ": "d"

так:

a==b==c else d

1 Ответ

0 голосов
/ 22 ноября 2018

Синтаксис троичного слова здесь немного неправильный:

stack_name = intl-${var.intl_region}-${var.intl_ctry}-${var.intl_env}-jk-${var.vanity_env == "-np" || var.vanity_env == "-dr" ? "mstr" : "master"}

Обратите внимание, что весь троичный оператор находится внутри конструкции ${}.

В качестве полного примера:

variable "intl_region" {
  default = "foo"
}

variable "intl_ctry" {
  default = "bar"
}

variable "intl_env" {
  default = "baz"
}

variable "vanity_env" {}

output "foo" {
  value = "intl-${var.intl_region}-${var.intl_ctry}-${var.intl_env}-jk-${var.vanity_env == "-np" || var.vanity_env == "-dr" ? "mstr" : "master"}"
}

И запустить его:

$ TF_VAR_vanity_env=-np terraform apply

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

foo = intl-foo-bar-baz-jk-mstr
$ TF_VAR_vanity_env=-dr terraform apply

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

foo = intl-foo-bar-baz-jk-mstr
$ TF_VAR_vanity_env=quux terraform apply

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

foo = intl-foo-bar-baz-jk-master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...