AZURE资源管理器:清理资源组

时间:2018-02-15 12:03:52

标签: azure azure-resource-manager

TL; DR:

  

有没有办法删除资源组中的所有资源,除了   使用空模板和手动逐步完成模式部署   从网络界面删除?

删除资源组不是一个选项(访问权限:贡献者,而不是所有者)

详细信息:

我正在尝试彻底清理AZURE中的资源组。

删除资源组不是一个选项(访问权限:贡献者,而不是所有者)

最优雅和明显的方法(在一些文章中也有描述)是使用"空"执行完全部署。部署模板:

New-AzureRmResourceGroupDeployment -Mode Complete -ResourceGroupName RG_NAME -TemplateFile .\empty.json

使用以下empty.json:

{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "2018-02-15", "parameters": {}, "variables": {}, "resources": [], "outputs": {} }

但是... 这有时 。即使不是的时间。

一旦有无限循环尝试删除SQL Server,失败并尝试再次删除。等了20分钟后,我参加了活动,发现了大约100个事件,比如

  

"删除SQL Server已启动" ......"接受" ......"失败" ......"开始"   ......"接受" ......"失败" ......

你明白了。

其他时候它运作良好。

所以,问题是:有没有办法删除所有资源 除了使用空模板和完整模式部署之外的资源组 从Web界面手动逐步删除?

似乎可重复的示例

  1. 尝试使用以下模板部署SQL Server(它将通过密码复杂性验证失败)

    {     " $ schema":" http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",     " contentVersion":" 2018-02-19",     "参数":{         " location":{             "输入":" string",             " defaultValue":"西欧"         },         " dbAdministratorLogin":{             "输入":" string",             " defaultValue":" sysadm"         },         " dbAdministratorPassword":{             "输入":" string"             ,             " defaultValue":" 123123"         },     },     "变量":{         " dbServerName":" dka-tst-sto-sql-srv",         " databaseName":" dka-tst-sto-sql"     },     "资源":[         {"评论":"服务器和数据库。数据库 - 服务器的子资源",             "输入":" Microsoft.Sql / servers",             " name":" [变量(' dbServerName')]",             " apiVersion":" 2015-05-01-preview",             " location":" [参数(' location')]",             "属性":{                 " administratorLogin":" [参数(' dbAdministratorLogin')]",                 " administratorLoginPassword":" [参数(' dbAdministratorPassword')]",                 "版本":" 12.0"             },             "资源":[{                     "输入":"数据库",                     " name":" [变量(' databaseName')]",                     " apiVersion":" 2014-04-01-preview",                     " location":" [参数(' location')]",                     "属性":{                         "整理":" SQL_Latin1_General_CP1_CI_AS",                         " edition":" Standard",                         " maxSizeBytes":" 268435456000",                         " requestedServiceObjectiveId":" f1173c43-91bd-4aaa-973c-54e79e15235b",                         " sampleName":"",                         " zoneRedundant":false                     },                     "依赖":[                         " [concat(' Microsoft.Sql / servers /',变量(' dbServerName'))]"                     ]                 },                 {                     "输入":" firewallrules",                     " name":" AllowAllWindowsAzureIps",                     " apiVersion":" 2014-04-01-preview",                     " location":" [参数(' location')]",                     "属性":{                         " endIpAddress":" 0.0.0.0",                         " startIpAddress":" 0.0.0.0"                     },                     "依赖":[                         " [concat(' Microsoft.Sql / servers /',变量(' dbServerName'))]"                     ]                 }             ]         }     ]     "输出":{     } }

  2. 然后尝试删除"清空"模板。

    你将获得无限循环的数据库删除"已启动..接受..失败..已启动..已接受..已失败..已启动...已启动..."

1 个答案:

答案 0 :(得分:1)

执行此操作的第一个也是最明显的方法:删除资源组。重新创建它需要5秒,一个空资源组不值得,你可以脚本标签\权限重新应用它们。

另一种方式可能是这样的:

Get-AzureRmResource | ? ResourceGroupName -eq your_resource_group_name | Remove-AzureRmResource -WhatIf

如果您确信这只会定位您想要的资源,则可以删除-WhatIf。您还可以使用-AsJob加快删除速度