我们通过 Terragrunt 使用带有 S3 后端的 Terraform。最近,有人尝试使用 Terraform 工作区,随后删除了工作区,而不是我们的远程状态无法找到任何处于正确状态文件中的输出。
查看调试日志后,我可以看到它似乎指向正确的文件,但它没有拾取任何已部署的基础架构或输出
我们通过 Terragrunt 使用带有 S3 后端的 Terraform。最近,有人尝试使用 Terraform 工作区,随后删除了工作区,而不是我们的远程状态无法找到任何处于正确状态文件中的输出。
查看调试日志后,我可以看到它似乎指向正确的文件,但它没有拾取任何已部署的基础架构或输出
Terraform 工作区和 terragrunt 使用不同的后端密钥路径。如果您使用 运行terragrunt
,则 s3 存储桶默认启用版本控制。
例如,使用,将创建terraform workspace
真实文件以*.tfstate
s3://<nominated_backend_bucket>/env:/<workspace_name>/<tfstate_path>
但是 terragrunt 将创建 tfstate 路径为
s3://<nominated_backup_bucket>/<source_code_directory>/<tfstate_path>
所以在大多数情况下,他们没有机会相互冲突。
我建议清理您的环境并terragrunt plan/apply
再次运行。还有一些其他问题比您在原始问题中描述的要多,您需要自己找出。