LoginSignup
1
1

More than 3 years have passed since last update.

リソースを持たない空のリソースグループを一括削除

Last updated at Posted at 2019-06-25

概要

 長期間にわたり多数の検証プロジェクトで利用していると Azure サブスクリプション内に、リソースを持たない空のリソースグループがゴミとして多数残ったりします。リソースグループの数が多い場合、それらを一つ一つ目視で確認して削除していくのはかなり面倒です。

スクリプトによる一括削除

 以下の PowerShell スクリプトは、ログインしたユーザーが所有する全ての Azure サブスクリプションを列挙し、その中にあるリソースを持たない空のリソースグループを強制削除していくコード例となります。あくまでサンプルですので、本スクリプトの使用は自己責任でお願いします。

remove-RG.ps1
# Azure へログインする
Login-AzureRmAccount

# サブスクリプションの列挙
$subscriptions = Get-AzureRmSubscription
foreach($subscription in $subscriptions)
{
    Select-AzureRmSubscription -SubscriptionID $subscription.Id

    # リソース一覧とリソースグループ一覧を取得する
    $resources = Get-AzureRmResource
    $resourceGroups = Get-AzureRmResourceGroup

    # 空のリソースグループ(リソースを持たないリソースグループ)を削除する
    foreach($resourceGroup in $resourceGroups)
    {
        # リソースを持っているかの判定
        $isEmptyResourceGroup = $TRUE;
        foreach($resource in $resources)
        {
            if($resource.ResourceGroupName -eq $resourceGroup.ResourceGroupName)
            {
                $isEmptyResourceGroup = $FALSE;
                break;
            }
        }

        # リソースを持っていない場合は削除
        if($isEmptyResourceGroup -eq $TRUE) 
        {
            $resourceGroup.ResourceGroupName
            Remove-AzureRmResourceGroup -ResourceGroupName $resourceGroup.ResourceGroupName -Force
            echo "*** Removed ***"
        }
    }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1