【问题标题】:How to avoid creating existing resources in Terraform?如何避免在 Terraform 中创建现有资源?
【发布时间】:2019-09-22 01:24:30
【问题描述】:

我使用 Terraform 成功应用了 AWS 的基本配置(添加了 DynamoDB 表):

terraform init
terraform apply -auto-approve

在我通过添加新资源更新文件并再次运行应用后,我收到 Dynamo 表已存在的错误:

* aws_dynamodb_table.my-table: error creating DynamoDB Table: ResourceInUseException: Table already exists: my-table

如何避免替换现有资源?

【问题讨论】:

  • 您是否尝试从与您第一次运行时相同的目录运行?顺便说一句,terraform 保持状态/
  • 是的,来自同一个目录。我没有删除状态文件,所以它应该在那里。
  • 你能打印计划的输出吗?理想情况下,如果它在其状态文件中,或者如果您从 GUI 创建它,则不应创建此资源。

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

事实证明,我需要更新到更新版本的 Terraform。 就我而言,从 0.11.40.12.9

更改之前:状态已更新,但未“使用”,因此它尝试重新创建所有资源。

更改后:应用阶段按预期跳过保存到状态的资源。

希望对某人有所帮助。

【讨论】:

  • 我很肯定 Terraform 0.11.x 正确地使用了状态文件并且没有忽略它。您肯定遇到了其他问题,但很高兴知道升级已为您解决了问题。
猜你喜欢
  • 2019-10-31
  • 2017-11-11
  • 2022-07-24
  • 2022-06-15
  • 2020-04-06
  • 1970-01-01
  • 2021-05-29
  • 2023-02-23
  • 1970-01-01
相关资源
最近更新 更多