在 Terraform 远程后端使用变量

woo*_*ddy 6 terraform terraform-provider-azure terraform-remote-state

# Using a single workspace:
terraform {
  backend "remote" {
    hostname = "app.terraform.io"
    organization = "company"

    workspaces {
      name = "my-app-prod"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

对于 Terraform 远程后端,是否有一种方法可以使用变量来指定组织/工作区名称而不是那里的硬编码值?

Terraform 文档似乎 也没有提及任何相关内容。

yda*_*coR 7

后端配置文档对此进行了一些详细介绍。需要注意的要点是:

只能指定一个后端,并且配置不能包含插值。Terraform 将验证这一点。

如果您想使其易于配置,那么您可以对静态部分使用部分配置(例如,S3 等后端的类型),然后在运行时通过环境变量或命令行标志以交互方式提供配置。

我个人将 Terraform 操作包装在一个小型 shell 脚本中,该脚本terraform init使用命令行标志运行,该脚本使用适当的 S3 存储桶(例如,每个项目和 AWS 帐户使用不同的存储桶),并确保状态文件位置与我正在工作的目录的路径相匹配在。