Azure Resource Manager dağıtım modelinde en çok karşılaştığım ve çok fazla tepki aldığım konulardan bir tanesi için geliştirdiğim Powershell Fonksiyonunu paylaşmak istiyorum. Bu fonksiyon sayesinde artık bağlandığınız Subscription üzerindeki bulunan Resource Group'ların içerisinde herhangi bir kaynak yok ise sizin için bu script temizliyor olacak.
Öncelikle Azure Resource Manager modülünün kurulu olduğunu emin olduktan sonra yapmanız gereken Azure Powershell üzerinde "Login-AzureRmAccount" cmdlet çalıştırıp oturum açalım.
Başarılı bir şekilde Azure hesabınızı girdikten sonra artık geliştirdiğim Powershell Fonksiyonunun kullanmaya geldi. İlgili fonskiyon Powershell session içerisine import edildikten sonra yapmanız gereken sadece fonksiyonu çağırmak.
Yukarıda fonksiyon detaylarını görebilirsiniz. Fonksiyon çağırıldığı zaman tüm Resource Group'lar çağrılır ve içerisindeki kaynak sayıları kontrol edilerek herhangi bir kaynak olmayan Resource Group'lar tek tek silinmeye başlar.
Fonksiyon çağrıldığı zaman karşınıza subscription detayları gelecektir. Bu detaylar içerisinden işlem yapmak istediğiniz hesabı seçtikten sonra kaynak olmayan Resource Group'ların temizlenmesi başlayacaktır.
function Remove-AzureEmptyResourceGroup { $SelectSubs = Get-AzureRmSubscription | Out-GridView -PassThru Select-AzureRmSubscription -SubscriptionId $SelectSubs.SubscriptionId | Out-Null Write-Host "Select default subscription is" $SelectSubs.SubscriptionName -ForegroundColor Green $RGs = Get-AzureRMResourceGroup foreach($resourceGroup in $Rgs){ $name= $resourceGroup.ResourceGroupName; $count = (Get-AzureRmResource | where { $_.ResourceGroupName -match $name }).Count; if($count -eq 0){ Write-Host "The resource group $name has $count resources. Deleting it..." ` -ForegroundColor Red -BackgroundColor White Remove-AzureRmResourceGroup -Name $name -Force -Verbose; } else{ Write-Host "The resource group $name has $count resources" ` -ForegroundColor Blue -BackgroundColor White } } }