azure - 使用 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 次。提前致谢。
解决方案
推荐阅读
- go - 如何通过 go-ethereum 创建 eth 帐户?
- c++ - 制作 istream 类的对象,并接受输入
- php - Laravel 急切加载使用父列值
- designer - 如何选择许多图像并针对所有这些图像生成一个图标?我使用哪个工具?
- c++ - unique_ptr 是否交换副本内容?
- jquery - 启用复选框上的禁用按钮单击jquery
- python - 在“Django 项目名称”中找不到属性“应用程序”。Heroku 应用部署
- docker - Azure CLI 中的 SQL Server 容器化
- redis - 在 WSL2 上重写 Redis Dump 的权限问题
- flutter-web - Flutter-web 模块化:路由太快时如何避免异常?