【问题标题】:Azure powershell script - create multiple resource groups with different ownersAzure powershell 脚本 - 创建具有不同所有者的多个资源组
【发布时间】:2020-06-02 18:43:55
【问题描述】:

我正在尝试创建一个循环脚本,该脚本将创建具有不同所有者的多个 RG。我在将不同的所有者添加到资源组时遇到问题。

$RGNamesUSE = "RG-01", "RG-02", "RG-03"
$Owner = "user1@mail.com","User2@mail.com", "User3@mail.com"

foreach($rg in $RGNamesUSE)
{
New-AzResourceGroup -Name $rg -Location westeurope
}

我需要为每个 RG 添加所有者。应该是 RG-01 将拥有所有者 user1,RG-02 将拥有所有者 user2 等等...我该怎么做?

【问题讨论】:

    标签: azure powershell azure-powershell


    【解决方案1】:

    您可以尝试下面的脚本,该脚本将创建一个资源组并将用户分配为资源组的“所有者”:

    $RGNamesUSE = "RG-01", "RG-02", "RG-03"
    $Owner = "user1@mail.com","User2@mail.com","User3@mail.com"
    
    For ($i=0; $i -le ($RGNamesUSE.length - 1); $i++) {
        $rg = $RGNamesUSE[$i];
        $userName = $Owner[$i];
    
        New-AzResourceGroup -Name $rg -Location westeurope
        New-AzRoleAssignment -SignInName $userName -RoleDefinitionName "Owner" -ResourceGroupName $rg
    }
    

    【讨论】:

      【解决方案2】:

      Jagrati 发布了正确答案,它满足您的要求。相反,我想挑战你的要求:)

      我见过像你这样的代码。如果它是解决方案的一部分而不是一次性运行,那么它们将很难维护并且很容易出错。

      例如,如果将来有人添加了新的 RG,他们需要记住将所有者添加到正确的位置,否则一切都会被破坏,问题可能会更糟,因为您甚至可能都没有注意到错误在构建时或运行时。

      这就是为什么我更喜欢这些类型的结构,所有细节都在同一个地方并且相互关联:(try it here)

      $ResourceGroups = @(
       @{
          "Name"="RG-01";
          "Owners"="user1.1@mail.com"
       },
       @{
          "Name"="RG-02";
          "Owners"="user2@mail.com"
       }
      )
      

      那么部署的代码就非常简单了,不需要任何索引或任何其他魔法来按位置关联多个数据源

      foreach($rg in $ResourceGroups)
      {
          Write-Host "Creating resource group Name: $($rg.Name) with Owners: $($rg.Owners)"
      
          # Create the Resource group 
          New-AzResourceGroup -Name $rg.Name -Location westeurope
      
          # Assign roles.
          New-AzRoleAssignment -SignInName $rg.Owners -RoleDefinitionName "Owner" -ResourceGroupName $rg.Name
      }
      

      在您需要为每个组添加更多角色分配或其他属性(如不同区域中的每个资源组)的情况下,这也会更好地工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多