gpt4 book ai didi

amazon-web-services - 如何将 Terraform 状态与我的 AWS 基础设施同步

转载 作者:行者123 更新时间:2023-12-03 07:48:22 29 4
gpt4 key购买 nike

terraform 应用期间出错,并且 terraform 状态不知道它创建的其余资源

我正在使用 Terraform 创建我的 AWS 帐户的一些资源。我的 terraform 项目包含超过 45 个资源,其中之一是 AWS CloudFormation 堆栈。我的 terraform 状态是通过 http 配置使用 GitLab API 进行管理的。
当我运行脚本时,gitlab-terraform apply Terraform 能够创建脚本中提到的大部分资源(45 个中的 44 个),但无法创建 AWS:CloudFormation 堆栈资源(由于other issue)。

现在,在这次事件之后,gitlab-terraform state 已经不记得它创建的 44 个资源了。状态文件仅包含有关 4 个资源的详细信息,下次当我运行 gitlab-terraform plan 和 gitlab-terraform apply 等命令时,它会向我显示创建 41 个资源的计划,并且apply 失败,表示资源存在同名。

有没有办法解决 Terraform 状态和我的 AWS 基础设施之间不同步的问题?

我已经尝试过

terraform refresh 命令包含计划和应用,但它没有解决我的问题。

最佳答案

如前所述,您要么需要导入所有资源,要么手动删除它们,没有办法自动导入现有资源来更新状态文件。

现在,为了避免将来再次发生此问题,请将您的 terraform 状态文件保存在 S3 中并使用 dynamodb 控制状态锁定。

terraform {
backend "s3" {
bucket = "terraform-bucket"
key = "terraform.tfstate"
region = "eu-west-1"
profile = "my-profile"
dynamodb_table = "terraform-locks"
encrypt = true
}
}

关于amazon-web-services - 如何将 Terraform 状态与我的 AWS 基础设施同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74758800/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com