Terraform destroy 以从 AWS API 获得错误响应?

Terraform destroy to get error response from AWS API?

如果 VPC 中有实例,AWS 不会让您删除它。

如果我在 vpc 中创建一个非 tf 托管实例(我 确实 使用 terraform 创建),然后执行 terraform destroy tf hangs waiting。

然后我可以转到 aws 控制台并手动删除 vpc,并从 aws 那里得到有用的回复,说明为什么它不能被删除,以及我可以手动删除的违规资源列表。

是否有一个详细的开关,terraform 会从 AWS API 中吐出这些消息?我假设 AWS API returns 这个信息,但也许它只在通过控制台删除时才这样做?

我还没有找到任何关于如何制作 tf destroy 命令的信息 return 这个信息所以假设它可能不可能但想确认。

您可以通过在执行 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; and please format it using the issues contributing guidelines