如何销毁特定Terraform管理的资源



我有一个DMS任务失败,无法恢复或重新启动。不幸的是,根据AWS支持部门的说法,唯一的办法是摧毁和重建它。我有一个大型基础设施,需要几个小时才能用Terraform摧毁和重建。我正在运行Terraform 1.2.X版本和AWS提供商4.17.0版本。

我试着运行terraform plan -destroy -target="<insert resource_type>.<insert resource_name>"。我尝试了带引号和不带引号、target选项前的双连字符、模块名称等。每次结果都会出现以下错误:

您尚未创建任何对象,或者现有对象。。。

我的层次结构是这样的:主模块->子模块->资源我的拼写和标点符号都是正确的。

我用谷歌搜索过。我只找到了Hashicorp文档,其中指定了语法,但没有命名约定,还有几年前的错误报告。如何选择性地销毁资源?

事实证明我没有正确命名资源。

经过一些尝试和错误,我为我的整个基础设施(terraform plan <insert module runtime params> -destroy(运行了一个销毁计划。使用它的输出,我找到了我想要销毁的资源的名称。格式为module.<submodule>.<resourcetype>.<resourcename>

一旦我直接从Terraform获得了资源名称,我首先运行terraform plan -destroy -target="module.<submodule>.<resourcetype>.<resourcename>"命令来验证结果,然后运行terraform destroy -target="module.<submodule>.<resourcetype>.<resourcename>"命令,它就工作了!

最新更新