在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应该是不同的(可能)。

广告
将在 10 秒后关闭
bannerAds