【发布时间】:2017-06-10 21:49:45
【问题描述】:
我很难理解我应该如何处理在我的 TF 状态中找到的 deposed 资源。
特别是,在运行应用程序时,我现在遇到一些错误,如下所示:
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 状态文件并删除已删除的部分??
【问题讨论】:
-
我不太清楚你所说的“被废黜”是什么意思?你的意思是他们被TF以外的东西删除了?
terraform destroy的默认-refresh=true参数应使用 AWS 中的内容自动更新状态文件,从而删除丢失的实例,然后不要尝试销毁它们。 -
显然废黜是一种状态。例如,请参阅此问题:github.com/hashicorp/terraform/issues/9844
-
确实,“废黜”状态的文档有些稀缺,如github issue here中所示
标签: amazon-web-services amazon-ec2 terraform