【发布时间】:2025-12-07 13:10:02
【问题描述】:
有没有办法在 HCL 中为远程状态提供程序指定工作区?如何确保协作者使用正确的工作空间?我希望看到类似的东西
terraform {
backend "s3" {
workspace = "someworkspace"
...
}
}
Terraform 的文档描述了如何使用 workspace_key_prefix,但这不是我想要的。
例如,如果一个团队成员运行 terraform workspace select dev 然后 terraform apply 然后另一个团队成员运行 terraform apply 没有首先运行 terraform workspace terraform 将重新部署定义的资源(因为适当的未选择工作区)。
【问题讨论】:
-
目前尚不清楚您要在这里实现什么。如果您选择一个工作区(使用
terraform workspace select或terraform workspace new),Terraform 将自动分离要使用的状态文件。您能否详细说明您正在尝试做的事情以及不适合您的事情? -
这是您正在寻找的即将推出的功能:hashicorp.com/blog/terraform-remote-operations?
-
@ydaetskcoR PTAL 添加了一个示例。当一名团队成员使用
terraform workspace select dev然后terraform plan时,问题就出现了。当下一个队友运行plan而没有先运行workspace时,您将获得重复部署。 -
重复的环境(或使用
terraform.workspace进行的足够接近的模数更改)是工作空间旨在实现的目标。如果你不想要,那么你不应该使用它们。 -
“重复环境”是错误的词。我更感兴趣的是(通过 HCL)指定任何给定计划应针对的环境。遵循 terraform.io/docs/enterprise/guides/recommended-practices/… 中概述的最佳实践
标签: terraform