如果存在实例,AWS将不允许您删除VPC。
如果我在vpc中创建一个非tf托管实例(我用terraform创建),然后做一个terraform destroy tf挂起等待。
然后我可以去aws控制台并手动删除vpc,并从aws获得一个有用的响应,为什么它不能被删除,以及我可以手动删除的违规资源列表。
是否有一个详细的交换机,terraform会从AWS API中吐出这些消息?我假设AWS API返回此信息,但也许只有在通过控制台删除时才会这样做?
我还没有找到关于如何使tf destroy命令返回此信息的任何信息,所以假设它可能不可能但想要确认。
通过在执行terraform之前设置TF_LOG
变量,您可以从terraform获取更多信息。有几个级别的日志记录,如果您熟悉syslog严重性级别(即INFO,WARN,ERROR等等),这应该看起来很熟悉。设置此变量是一个非常有用的debugging strategy。
设置TF_LOG=DEBUG
至少应该让您确定正在调用哪些AWS api调用。根据我对terraform的体验,api调用失败并不罕见;和terraform有时不会报告错误,挂起或报告错误,但信息充其量只是过时的。这是terraform社区正在努力的事情。还有current github issues open to similar behavior
如果在设置TF_LOG
环境变量之后,api调用确实失败了,我建议你open a github issue with terraform;请使用issues contributing guidelines格式化