なぜ
Terraformのworkspacesの機能を使うと、複数環境を切り替えられるようになる。
環境によって切り替えたい設定が場合にどうしたら良いか。
GitHubのissueにいい感じの方法が書いてった。
どうやって
下記のような内容でファイルを作成する。
vars.tf
locals {
env = {
defaults = {
project_name = "project_default"
region_name = "region-default"
}
staging = {
project_name = "project-staging"
}
production = {
region_name = "region-production"
}
}
config = "${merge(local.env["defaults"], local.env[terraform.workspace])}"
}
使う側は、"${local.config["project_name]}"
のようにする。
この例では、workspace名は、"staging"もしくは"production"となっている必要がある。