首页 > 解决方案 > 使用 terraform destroy 命令删除 azure 资源时出错

问题描述

我正在使用 terraform 创建环境,运行测试并在成功完成测试后销毁环境。这个过程每周运行 5 天,我们使用 gitHub action runner 来执行测试。环境是使用 terraform 在 azure 中创建的。

最近,我在 Azure 的 terrform destroy 阶段遇到了这样的错误。 Error: Error deleting Subnet "subnet" (Virtual Network "network" / Resource Group "ResourceGroupName"): network.SubnetsClient#Delete: Failure sending request: StatusCode=404 -- Original Error: Code="ResourceNotFound" Message="The Resource 'Microsoft.Network/virtualNetworks/network' under resource group 'ResourceGroupName' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"

terraform destroy 阶段由命令运行 terraform destroy -auto-approve -var "resource_group_name=${RESOURCE_GROUP_NAME}"

我从日志中发现的问题是删除子网的请求没有完成,删除包括资源组在内的其他资源的请求被执行并完成,而无需等待子网删除请求完成。在询问 Azure 支持时,他们回答说子网正在使用中,因此导致了错误。他们建议删除虚拟网络内的所有资源,然后继续删除虚拟网络本身并在这些操作之间添加延迟。

由于脚本只执行命令来销毁 terraform 以通过传递资源组名称来销毁资源,我不确定这里是否可以做任何事情。除了添加单独删除资源的命令而不是使用单个命令之外,还有其他解决方案吗?请注意,此问题并不经常发生,并且在最近一个月的 20 次测试运行中大约发生 5 次。提前致谢。

标签: azureterraformgithub-actionssubnet

解决方案


推荐阅读