How can I apply or destroy after removing resources via AWS Console?
我有一个具有各种批处理服务资源的模块,例如作业定义,计算环境和作业队列。
今天,由于更新这些与批处理相关的资源之一时出错,我无法执行
我之前遇到过类似情况,并通过手动禁用/删除作业队列来清除障碍。因此,我再次通过AWS控制台执行了该操作,并运行
收到这样的消息
1 2 | 2020/04/30 15:15:43 [ERROR] module.batch_data_load: eval: *terraform.EvalRefresh, err: One compute environment is expected, but AWS return no compute environment 2020/04/30 15:15:43 [ERROR] module.batch_data_load: eval: *terraform.EvalSequence, err: One compute environment is expected, but AWS return no compute environment |
因此,看来我已经通过AWS控制台使用Terraform托管资源来弄乱状态文件。
通过AWS控制台删除资源后如何应用或销毁?
Terraform确实会在创建计划时尝试将自己的状态概念与远程对象重新同步,但是它并不总是有效,因为有时远程对象会以Terraform无法解释的方式进行交互,或者其他原因Terraform没有足够的信息来完全重新同步。
如果知道与配置中的特定资源实例关联的远程对象已删除,则可以使用
1 | terraform state rm aws_batch_job_queue.example |
仅当您确定该对象已不存在或打算使用其他系统继续管理现有对象时,才应执行此操作,因为一旦Terraform忘记了该对象,它将永远不会计划销毁该对象。因此该对象可以永远保持活动状态。