Share via


使用 Azure 原則 在 Azure 虛擬網絡 Manager 中定義動態網路群組成員資格

在本文中,您將瞭解如何使用 Azure 原則 條件語句來建立具有動態成員資格的網路群組。 您可以從下拉功能表中選取參數和運算符,以使用基本編輯器建立這些條件語句。 此外,您將瞭解如何使用進階編輯器來更新現有網路群組的條件語句。

Azure 原則 是一項服務,可讓您大規模強制執行每個資源治理。 它可用來指定定義群組成員資格的條件表達式,而不是明確列出虛擬網路。 此條件會繼續以動態方式為您的網路群組提供電源,讓虛擬網路加入並讓群組在滿足條件變更時自動離開群組,而不需要網路管理員作業。

重要

Azure 虛擬網絡 Manager 通常適用於具有安全性系統管理員規則的中樞與輪輻連線設定和安全性設定。 網格聯機設定仍為公開預覽狀態。

此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

必要條件

參數和運算子

使用條件語句選取具有動態成員資格的虛擬網路。 針對需要進一步縮小所選虛擬網路的案例,您可以使用 AND 和 OR 等邏輯運算符來定義多個條件語句。

支援的參數清單:

參數 進階編輯器欄位
名稱 Name
識別碼 Id
Tags (標籤) tag['tagName']
訂用帳戶名稱 [subscription().Name]
訂用帳戶識別碼 [subscription().Id]
訂用帳戶標籤 [subscription().tags['tagName']]
資源群組名稱 [resourceGroup().Name]
資源群組標識碼 [resourceGroup().Id]
資源群組標籤 [resourceGroup().tags['tagName']]

支援的運算子清單:

運算子 進階編輯器
Contains "contains": <>
不包含 "notcontains": <>
In "in": <>
不在 "notin": <>
等於 "equals": <>
不相等 "notequals": <>
包含任何 "contains": <>
包含所有 "contains": <>
不包含任何 "notcontains": <>
Exists "exists": true
不存在 "exists": false

注意

ExistsNot exists 運算子只會與 Tags 參數搭配使用。

基本編輯器

假設您的訂用帳戶中有下列虛擬網路。 每個虛擬網路都有一個名為 environment 的相關聯標籤,具有生產測試個別值。

虛擬網路 標籤名稱 標籤值
myVNet01-EastUS environment 生產
myVNet01-WestUS environment 生產
myVNet02-WestUS environment 測試
myVNet03-WestUS environment 測試

您只想要選取其標籤具有等於生產環境之索引鍵值組的虛擬網路。 若要開始使用基本編輯器來建立條件語句,您需要建立新的網路群組。

  1. 移至您的 Azure 虛擬網絡 Manager 實例,然後選取 [設定 底下的 [網络群組]。 然後選取 [+ 建立 ] 以建立新的網路群組。

  2. 輸入網路群組的 [ 名稱 ] 和選擇性 [描述 ],然後選取 [ 新增]。

  3. 從清單中選取網路群組,然後選取 [建立 Azure 原則]。

  4. 輸入原則 名稱 ,並保留 [範圍 ] 選取專案,除非需要變更。

  5. 在 [準則] 底下,從 [參數] 下拉式清單中選取 [卷標],然後從 [運算符] 底下的下拉式清單中選取 [索引鍵值組]。

  6. 在 [條件] 下輸入環境和生產環境,然後選取 [預覽資源]。 您應該會看到 myVNet01-EastUS 和 myVNet01-WestUS 顯示在清單中。

    [建立 Azure 原則 視窗設定標籤與索引鍵值組的螢幕快照。

  7. 選取 [關閉] 和 [儲存]。

  8. 幾分鐘后,選取您的網路群組,然後選取 [設定 下的 [群組成員]。 您應該只會看到 myVNet01-WestUS 和 myVNet01-WestUS。

重要

基本編輯器只能在建立 Azure 原則 期間使用。 建立原則之後,虛擬網路管理員的 [原則] 區段中會使用 JSON 或透過 Azure 原則 來完成所有編輯。

進階編輯器

在建立網路群組或更新現有網路群組時,可以使用進階編輯器來選取虛擬網路。 以 JSON 為基礎,進階編輯器適用於建立和更新有經驗的使用者的複雜 Azure 原則 條件語句。

使用進階編輯器建立新的原則

  1. 移至您的 Azure 虛擬網絡 Manager 實例,然後選取 [設定] 底下的 [網络群組]。 然後選取 [+ 建立 ] 以建立新的網路群組。

  2. 輸入網路群組的 [ 名稱 ] 和選擇性 [描述 ],然後選取 [ 新增]。

  3. 從清單中選取網路群組,然後選取 [建立 Azure 原則]。

  4. 輸入原則 名稱 ,並保留 [範圍 ] 選取專案,除非需要變更。

  5. 在 [準則] 底下,選取 [進階][JSON] 編輯器以開啟編輯器。

  6. 在文字框中輸入下列 JSON 程式代碼,然後選取 [ 儲存]:

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. 幾分鐘后,選取您的網路群組,然後選取 [設定 下的 [群組成員]。 您應該只會看到 myVNet01-WestUS 和 myVNet01-EastUS。

重要

您使用虛擬網路管理員建立的任何 Azure 原則都會存在於 Azure 原則 服務區域中。 刪除虛擬網路管理員實例時,它們將不會從您的 Azure 原則 指派和定義中移除。 這需要手動移除原則。 瞭解如何移除 Azure 原則

編輯現有的原則

  1. 選取在上一節中建立的網路群組。 然後選取 [原則] 索引標籤。

  2. 選取在上一節中建立的原則。

  3. 您會在進階編輯器檢視中看到網路群組的條件語句,如下所示:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. 若要為不包含WestUS的 Name 欄位新增另一個條件語句,請在進階編輯器中輸入下列內容:

    {
       "allOf": [
    
          {
             "field": "Name",
             "contains": "VNet01"
          },
          {
             "field": "Name",
             "notcontains": "WestUS"
          }
       ]
    }
    

    參數"allOf"包含 AND 邏輯運算子分隔的條件語句。

  5. 選取 [儲存]。

  6. 幾分鐘后,選取您的網路群組,然後選取 [設定 下的 [群組成員]。 您應該只會看到 myVNet01-EastUS。

如需您可以搭配進階編輯器使用之參數和運算子的完整清單,請參閱 參數和運算符

更多範例

以下是進階編輯器中條件語句的更多範例。

範例 1:僅限 OR 運算元

這個範例會使用 OR 邏輯運算符來分隔兩個條件語句。

  • 基本編輯器:

    使用 OR 邏輯運算子的網路群組條件語句螢幕快照。

  • 進階運算子:

    {
       "anyOf": [
          {
             "field": "Name",
             "contains": "myVNet01"
          },
          {
             "field": "Name",
             "contains": "myVNet02"
          }
       ]
    }
    

參數"anyOf"包含 OR 邏輯運算子分隔的條件語句。

範例 2:AND 和 OR 運算符同時

  • 基本編輯器:

    使用 OR 和 AND 邏輯運算子的網路群組條件語句螢幕快照。

  • 進階編輯器:

{
   "allOf": [
      {
         "anyOf": [
            {
               "field": "Name",
               "contains": "myVNet01"
            },
            {
               "field": "Name",
               "contains": "myVNet02"
            }
         ]
      },
      {
         "field": "Name",
         "notcontains": "West"
      }
   ]
}

"anyOf""allOf"用於程式代碼中。 由於 AND 運算子是清單中的最後一個,所以它位於包含具有 OR 運算子之兩個條件語句的程式代碼外部部分。

範例 3:搭配進階編輯器使用自定義標籤值

在此範例中,會建立條件語句,以尋找名稱包含 myVNet環境 標籤等於 生產環境的虛擬網路。

  • 進階編輯器:

    
       {
            "allOf": [
              {
                 "field": "Name",
                 "contains": "myVNet"
              },      
              {
                 "field": "tags['environment']",
                 "equals": "production"
              }
            ]    
       }
    
    

    注意

    條件應篩選資源類型 Microsoft.Network/virtualNetwork,以改善效率。 此條件會在透過入口網站指定的任何條件上為您加上。

下一步