Terraform TFSTATE 未从远程 S3 存储桶刷新



我在本地计算机上使用 tf 代码部署了 AWS 基础设施,该代码将 terraform.tfstate 存储在我的机器上。 现在我希望其他开发人员引用相同的状态文件,因此我将代码复制到 GitHub 存储库并添加 state.tf 并将 terraform.tfstate 从我的本地计算机复制到我的状态文件指向的 S3 存储桶前缀。 我也是回购中的一个更改, 我没有有一个大的TF文件,而是将其分为三个文件 - state.tf,vpc.tf 和 dynamodb.tf。

我的 state.tf 文件:

terraform {
backend "s3" {
bucket = "testing-d-tf-state"
key    = "aws-xyz/terraform.tfstate"
region = "us-west-2"
}
}

但是,当我的开发人员在他的机器上运行代码时,他得到了

计划:26 添加,0 更改,25 破坏。

我无法弄清楚为什么他没有正确刷新 terraform.tfstate 文件以读取,这样他就不会得到"添加"或"破坏",因为没有对基础设施进行任何更改。

不应手动将terraform.tfstate文件复制到远程位置。对backend信息进行编码后,您将重新运行terraform initTerraform 将负责在本地和远程存储桶中为您正确设置这些信息。

完成此操作后,应执行一些操作来确认其工作:

  1. 登录 AWS 控制台并确认正确的存储桶和位置中现在有一个terraform.tfstate文件。
  2. 移动本地terraform.tfstate文件(为了以防万一,不要删除它(,然后运行类似terraform state list的东西来查询状态文件。如果它有效,则您的远程状态配置正在工作。

相关内容

最新更新