忘れがちなので、気付いたタイミングで書いておく。
backend に変数 (Variables) は利用できない
こんな感じで怒られる。 起動時に引数に渡すか、backend 用に別ファイルを作れとのこと。
│ Error: Variables not allowed │ │ on main.tf line 11, in terraform: │ 11: profile = var.profile │ │ Variables may not be used here.
上記記事でも言及されているけど、(インフラ構成するコードベースに対して) ハードコーディング強制するのはおまえ、という感じある。
変数を展開する際の ${} 有無について
上記記事で言及されているのがすべてなんだけど、 Terraform v0.11 までは律儀に書かないとダメだったけど、それ以降は書かなくても大丈夫になったらしい。
とはいえ、文字列内に含めたい場合は必要なはずなので、以下の理解でやっている。
variable "vpc_cidr" {} variable "prefix" {} vpc_cidr = "10.0.0.0/16" prefix = "prod-example" resource "aws_vpc" "vpc" { cidr_block = var.vpc_cidr instance_tenancy = "default" tags = { Name = "${var.prefix}-vpc" } }
文字列に含めないで (単独で) 使う | 文字列に含めて使う |
---|---|
var.vpc_cidr |
"${var.prefix}-vpc" |
(LL 含む) 言語記述時はなるべく省略すべき、となるんだろうけど、 Terraform くらいなら全部 ${}
で統一してしまっていいかもしれない。