7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Terraformでも複数条件の三項演算子は使える

Posted at

Terraformでも複数条件の三項演算子は使える

やりたかったこと

AWSのオートスケーリンググループで条件によってオートスケーリングサイズを変更したかった。

  • 条件1・条件2が両方trueならサイズを0
  • 条件1がtrueならサイズを2倍
  • それ以外はデフォルト値

実際やったコード


local {
  test_min     = 2
}

variable "ALLDOWN" {
  default = ""
}
variable "TEST" {
  default = ""
}

resource "aws_autoscaling_group" "test" {
  min_size           = var.TEST == "test" ? var.ALLDOWN == "alldown" ? 0 : local.test_min * 2 : local.test_min

~~~ 略 ~~~

}

上記のterraformのコードをapply済みとする。

条件1・条件2が両方true

terraform plan -target=aws_autoscaling_group.test -var TEST="test" -var ALLDOWN="alldown"

~ min_size                  = 2 -> 0

条件1がtrue

terraform plan -target=aws_autoscaling_group.test -var TEST="test"

~ min_size                  = 2 -> 4

それ以外

terraform plan -target=aws_autoscaling_group.test

No changes. Infrastructure is up-to-date.

解説

条件1 ? 条件2 ? "A" : "B" : "C"

このような式があった場合、どうなるかというと以下のようになるためである。

条件1 条件2 結果
true true A
true false B
false false C
false true C
7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?