我创建了一个用于部署EC2虚拟机的平台模板。它还创建创建EC2虚拟机所需的子网、安全组和网络接口。我将这个地形模板上传到S3桶。接下来,我创建了Lambda函数来下载这个地形模板并创建资源。我没有tfstate
文件,因为Lambda函数终止了。现在,我想使用Terraform模板销毁Lambda函数创建的这些资源。
我该怎么做呢?
我已经尝试了以下的事情,但没有工作:
-
我在本地环境中有一个
terraform plan
文件。我没有找到一个方法把这个传递给terraform destroy
。 -
当我在本地环境中尝试这个模板时,它生成了一个
tfstate
文件。我使用该文件来销毁资源,但得到以下错误:自上次terraform apply
以来,Terraform检测到以下在Terraform外部发生的更改。 -
我尝试
terraform refresh
和terraform delete
刷新资源状态并销毁它们。 -
我也试过
terraform plan -destroy
和terraform apply -destroy
命令。
除了手动删除这些资源,还有其他方法吗?
- 使用https://github.com/GoogleCloudPlatform/terraformer用本地保存的状态文件导入资源
- 运行Terraform计划以确保导入的资源与那里的匹配
- 使用https://github.com/cloudskiff/driftctl的报道比较进口资源
- 再次运行Terraform destroy
因为你起程拓殖资源和模板使用起程拓殖云也资源手动导入状态文件导入,但测试上工作流。