こんにちは駆け出しアーキテクトのやまぱんです。
Azure を触る人は定期的にむしゃくしゃして? Azure の検証環境を壊したくなることがあると思います。
そうした時になるべ楽したいと思います。
一番の注意
まず、操作対象のSubscriptionであることを確認してください
or
- ログイン時
Connect-AzAccount
を利用する際にオプション-Subscription (Subscription ID)
を利用して 正しいSubscription にログインしましょう。
誤って権限のある他人の検証環境に入った状態で実行してしまうことは避けましょう!
その他
-
Azure のリソースを全消しします。
-
例えば個人の検証環境をクリーンにしたくなる時に使います。
-
このコードを実行する前に、Azureアカウントに管理者アクセス権限があることを確認してください。
-
大体きれいに全消しはできないです。簡単に削除できるものを削除します。
-
残ったリソースはリソースロックや、論理削除が有効になってたりします。それらの設定を確認して変更してください。
-
その他バグったリソースなどは消せないことがあります。 このコマンドはそうした削除できなくなったリソースには効果がありません。
その場合は、下記の方法を確認してください。
• Azure PowerShellで正しい値に設定しなおす
• Resource Explorerで正しい値に設定しなおす
• JSONテンプレートの完全デプロイを試す -
もし、特定のリソースを削除したくない場合は、適切にコードを修正してください。
-
「-Force」オプションおよび「-Confirm:$false」オプションを使用することで、確認メッセージが表示されずにリソースが削除されます。
-
これにより、誤ってリソースを削除するリスクが高まるので、注意して使用してください。
-
また、上記のコードは一度に全てのリソースを削除しますが、通常はそのような大規模な削除操作は避けるべきです。必要なリソースだけを選択的に削除することをお勧めします。
実行途中の画面:ロックがかかってるリソースは失敗している
ソース
# 全てのリソースグループを取得してループで処理
$resourceGroups = Get-AzResourceGroup
foreach ($resourceGroup in $resourceGroups) {
# リソースグループ内のリソースを全て削除
$resources = Get-AzResource -ResourceGroupName $resourceGroup.ResourceGroupName
foreach ($resource in $resources) {
Write-Host "Deleting resource: $($resource.Name)..."
Remove-AzResource -ResourceId $resource.ResourceId -Force -Confirm:$false
}
# リソースグループ自体を削除
Write-Host "Deleting resource group: $($resourceGroup.ResourceGroupName)..."
Remove-AzResourceGroup -Name $resourceGroup.ResourceGroupName -Force -Confirm:$false
}
Write-Host "All resources have been deleted."
関連
github https://github.com/aktsmm/Scripts/tree/main/ps/DeleteAllAzureResources