在Terraform中,似乎不需要在资源名称中加入dev/prod等
切換環境資源名
-
- Terraformで環境ごとのリソース名の切り替えをする際は、Terraform 環境周りTips にあるように workspace サブコマンドを使えばよい
- でも、その場合同じリソース名をprod/devで指定すると重複してしまうのではないかと危惧していた
构想
我对是否应该制作类似以下资源有些困惑。
resource "aws_iam_role" "hoge-role-${terraform.env}" { # <-- ${terraform.env}でリソース名切り替え
name = "hoge-role-${terraform.env}"
path = "/${terraform.env}/hoge/"
assume_role_policy = <<EOF
{
...
}
EOF
}
相关的StackOverflow和GitHub的话题
-
- hashicorp/terraform – Can’t use programmatic resource names #571
- StackOverflow – Referring to resources named with variables in Terraform
在Terraform中的名称仅仅是用于引用目的的逻辑名称。您想要对资源内部的值进行参数化,而不是名称本身,这是有意设计的。
通过使用不同的变量和状态文件,支持多个环境。
然而,正如上述文章所述,在Terraform中无法使用字符串插值来命名资源是其规格说明,似乎不必这样做。
即使引用相同的资源名称,如果工作区不同,实际的ARN应该是不同的(可能)。