Terraformでcompact関数を使ってみる
Posted on
はじめに
引数で値を渡して配列に追加したかったのですが 引数の値が存在する場合としない場合があるという条件がありました。
その中でcompact
という関数を使いましたのでメモしておきます。
compact
は、配列の中の空文字列を除去してくれる関数となります。
検証環境
■OS
macOS BigSur
■ Terraform
v1.1.7
compact を利用する前の状態
変数 a , b を定義して output_list
に配列として設定するようにしています。
この場合 a , b が定義できる場合はよいのですが、定義できない場合 output_list
に空文字が入ってしまいます。
空文字が入ると resouce で利用する時、エラーになってしまうことがあるため除去したい状況でした。
variable "a" {
type = string
default = ""
}
variable "b" {
type = string
default = ""
}
locals {
output_list=[
var.a,
var.b
]
}
output "output_list" {
value = concat(local.output_list)
}
$ terraform plan
<省略>
Changes to Outputs:
+ output_list = [
+ "",
+ "",
]
compact を利用した状態
compact を利用することにより空文字が除去されて、配列が綺麗になりました。
variable "a" {
type = string
default = ""
}
variable "b" {
type = string
default = ""
}
locals {
output_list = compact( ## compactの引数に配列を適用する
[
var.a,
var.b
]
)
}
output "output_list" {
value = concat(local.output_list)
}
$ terraform plan
<省略>
Changes to Outputs:
+ output_list = []