当前位置:  开发笔记 > 编程语言 > 正文

我应该如何处理Terraform中的"废弃"资源?

如何解决《我应该如何处理Terraform中的"废弃"资源?》经验,为你挑选了1个好方法。

我很难理解如何处理deposedTF状态中的资源.

特别是,在运行apply时,我现在遇到如下错误:

Error applying plan:

11 error(s) occurred:

* aws_instance.mongo-replica-01 (deposed #0): Error terminating instance: InvalidInstanceID.NotFound: The instance ID 'i-0f0bdc2c16e922fbc' does not exist
    status code: 400, request id: 71b98708-cb06-4f11-ad14-8d3d160fbc1a
* aws_instance.mongo-replica-01 (deposed #1): Error terminating instance: InvalidInstanceID.NotFound: The instance ID 'i-080ef01dc84c09685' does not exist
    status code: 400, request id: 07c96f82-1e32-4944-a1d6-ab0e6306b82e
* aws_instance.mongo-replica-02 (deposed #1): Error terminating instance: InvalidInstanceID.NotFound: The instance ID 'i-085b997daac742c1e' does not exist
    status code: 400, request id: 20ff2b73-39c9-4d49-af41-f4ec542ec782
* aws_instance.mongo-replica-02 (deposed #0): Error terminating instance: InvalidInstanceID.NotFound: The instance ID 'i-00bc7fd15b04a3688' does not exist
    status code: 400, request id: cdea3c4f-9bec-496a-aedd-bcfbf0a706d2

有问题的AWS EC2实例确实不存在,但在尝试删除它们时可能会出现TF错误(可能是因为它们不存在),并且仍然将它们保持在状态.

我尝试使用该terraform state命令试图删除deposed资源,但它只允许我删除整个资源,而不仅仅是deposed它的实例...

我希望,简单地说,手动进入terraform状态文件并删除废弃的部分??



1> ILMostro_7..:

从GitHub Issue请求有关“已废除”状态的文档

“已废弃”是Terraform处理create_before_destroy时资源进入的状态...由于给定资源只能有一个“主”实例,因此Terraform将首先废弃现有资源(因此仍处于状态跟踪,但没有更长的时间用于插值),然后创建替换实例,最后删除已废除的实例。

在此过程中发生的错误可能导致被废弃的实例停留在状态中,因为Terraform不想在删除它们之前就无法对其进行跟踪。但是,此行为在早期的Terraform版本中有点不一致,并且Terraform还会以静默方式处理已废弃的实例,而不是将其包含在计划输出中。

因此,所有这些都可以说:这些废弃实例是在用create_before_destroy替换这些资源期间由于故障而遗留的。如果查看Terraform状态文件(terraform.tfstate或.terraform / terraform.tfstate取决于是否启用了远程状态),则应通过搜索被废除的单词来查找这些记录。您可以使用Terraform为这些数据库存储的数据来决定是否可以安全删除它们,然后再让Terraform继续进行。

因此,您可以推断出这些资源的“已废弃”状态仅表示在此destroy阶段引起错误的潜在问题。如引用中所述,由于缺少更好的用语,应该在下一次运行时“解决”“已废弃”的资源terraform apply。同时,检查tfstate文件以获取terraform已存储的任何/所有特定信息,以确定继续进行安全和/或潜在地诊断问题所在的安全性。

此外,您可以尝试以下方法刷新本地状态

terraform refresh      Update local state file against real resources

也,

terraform debug              Debug output management
terraform state              Advanced state management

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有