【发布时间】:2021-11-21 12:53:05
【问题描述】:
我创建了一个 terraform 模板来部署 EC2 虚拟机。它还创建创建 EC2 VM 所需的子网、安全组、网络接口。
我将此 terraform 模板上传到 S3 存储桶。接下来,我创建了下载此 terraform 模板并创建资源的 Lambda 函数。
我没有 tfstate 文件,因为 Lambda 函数已终止。现在,我想使用 Terraform 模板销毁 Lambda 函数创建的这些资源。
我该怎么做?
我尝试了以下方法,但没有成功:
-
我在本地环境中有一个
terraform plan文件。找不到将其传递给terraform destroy的方法。 -
当我在本地环境中尝试此模板时,它生成了一个
tfstate文件。我使用该文件来破坏资源,但出现以下错误: Terraform 检测到自上次terraform apply以来在 terraform 之外进行的以下更改。 -
我尝试
terraform refresh和terraform delete刷新资源状态并销毁它们。 -
我也尝试了
terraform plan -destroy和terraform apply -destroy命令。
除了手动删除这些资源还有其他方法吗?
【问题讨论】:
-
1.您可以将此传递给
terraform apply。 2. 我们能看到那个输出吗? 3. 不确定,因为没有terraform delete子命令。 4.terraform plan -destroy将与状态和配置一起使用。您能否进一步详细说明您是否尝试过? -
如果您丢失了 TF 状态文件,您必须前往 AWS 控制台并手动清理所有内容。
-
@Marcin 我手动清理了一些东西。我正在寻找一种通过一些命令删除的方法。我的模板创建了 16 个资源。遍历每个服务然后定位资源是一项艰巨的任务。
-
如果您不知道自己创建了哪些资源,任何命令都无济于事。唯一通用的解决方案是
aws-nuke删除所有内容。 -
@MattSchuchard 我通过了相同的计划文件来申请,但它不起作用,因为一些资源已经存在同名。您希望看到哪个命令输出?您需要什么额外的细节?
标签: amazon-web-services terraform terraform-provider-aws