验证 Azure 资源组是否存在

Validate Azure Resource Group Exist or not

我正在尝试写入一个 powershell 脚本来验证资源组是否存在。

条件-

  1. 检查 Azure 订阅中是否已经存在资源组 (myrg)。

  2. 如果 "condition 1" 为 FALSE,则创建资源组 (myrg) 否则将 2 位数字附加到资源组名称。例如(myrg01)

  3. 检查 azure 订阅中是否存在 (myrg01) 资源组。

  4. 如果 "condition 3" 为 FALSE,则创建资源组 (myrg01) 否则将资源组名称的最后一位数字增加 1。例如(myrg02)

  5. 检查 azure 订阅中是否存在 (myrg02) 资源组。

  6. 如果 "condition 5" 为 FALSE,则创建资源组 (myrg02) 否则将资源组名称的最后一位数字增加 1。例如(myrg03) 等等.........

下面是我到目前为止编写的代码,无法创建所需的循环。

$rgname= "myrg"
Get-AzResourceGroup -Name $rgname -ErrorVariable notPresent -ErrorAction SilentlyContinue
if ($notPresent){
  Write-Host "ResourceGroup doesn't exist, Creating resource group"
  $createRG= New-AzResourceGroup -Name $rgname -Location $region -Tag $tag
    Write-Host $rgname
}
else{ 
  $countcontent = $countcontent + 1
  $counter = [int]$countcontent
  ++$counter
  $countString = "{0:d2}" -f ($counter)
  Write-Host "ResourceGroup $rgname already exist, Generating a new name for Resource Group" 
  $rgname= $rgname + $countString  
  Get-AzResourceGroup -Name $rgname -ErrorVariable notPresent -ErrorAction SilentlyContinue
    if ($notpresent){
    $createRG= New-AzResourceGroup -Name $rgname -Location $region -Tag $tag
    Write-Host $rgname
    Clear-Variable countcontent 
    Clear-Variable counter 
    Clear-Variable countString
   }
}

找到解决方法

$rg="myrg"
$Subscriptions = Get-AzSubscription
$Rglist=@()
foreach ($Subscription in $Subscriptions){
$Rglist +=(Get-AzResourceGroup).ResourceGroupName
}
$rgfinal=$rg
$i=1
while($rgfinal -in $Rglist){
$rgfinal=$rg +"0" + $i++
}
Write-Output $rgfinal
Set-AzContext -Subscription "Subscription Name"
$createrg= New-AzResourceGroup -Name $rgfinal -Location "location"