Terraformを使っていて、関数名が環境によって差があるときにvar.env
で分岐することが多いと思う。
単純な環境名であれば、分岐はproduction
, staging
, development
などが多い例だろうが、関数名になると最初が大文字であるケースがある。
例えばhogeProductionClient
, hogeStagingClient
みたいな。
始め、これをvar.env_upcase
といった名前でterraform.tfvarsにわざわざProduction
という別の変数を定義していたのだが、そんなことをしなくてもtitle Functionで解決するという話だった。(コードレビューで指摘して頂きました Thanks!)
# わざわざ別の名前で定義していた env = "production" env_short = "prod" env_upcase = "Production"
↓
$ terraform console > title("production") "Production"
こんな感じで名前を定義できるわけだね
function_name = "hoge${title(var.env)}Client"
他にもTerraformにはBuilt-in Functionがあるので、立ち止まって調べると案外リファクタリングチャンスがあるかもしれない
$ terraform console > upper("production") "PRODUCTION" > lower("PRODUCTION") "production"