在不同範圍部署範本

已完成

現在您已了解可部署資源的各種範圍。 在此單元中,您將了解如何開始撰寫 Bicep 檔案,以在這些範圍中進行部署。

指定 Bicep 檔案的目標範圍

Bicep 必須知道檔案部署所在的範圍。 這項資訊很重要,因為 Bicep 需要確保您所部署的資源對您所使用的範圍有效。 例如,如果您嘗試在不支援的範圍定義資源,適用於 Visual Studio Code 的 Bicep 延伸模組會警告您。

使用 targetScope 關鍵字來告訴 Bicep,檔案中的資源是針對特定的範圍。 以下是在管理群組範圍部署資源的 Bicep 檔案範例:

targetScope = 'managementGroup'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
  // ...
}

請注意,您會告訴 Bicep 在管理群組範圍部署資源,但您不會指定「哪個」管理群組。 當您部署範本時,您會確切地告訴 Bicep,您要將資源部署到哪個管理群組。 Azure CLI 和 Azure PowerShell Cmdlet 提供引數以指定此資訊。

您可以將檔案的 targetScope 設定為 resourceGroupsubscriptionmanagementGrouptenant。 如果您未指定目標範圍,Bicep 會假設 resourceGroup 範圍。

建立資源群組

既然您了解如何在各種範圍建立部署,請嘗試套用此理解來建立資源群組,這是訂用帳戶範圍資源:

targetScope = 'subscription'

resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
  name: 'example-resource-group'
  location: 'westus'
}

在此範例中,請注意 Bicep 檔案具有 subscriptiontargetScope,這表示 Bicep 預設將檔案中的所有資源視為訂用帳戶範圍。

注意

您稍後將在本課程模組看到如何使用 Bicep,來建立 Azure 訂用帳戶和管理群組。

提交部署

啟動部署時,您必須告訴 Azure 要將其部署至哪個範圍。 這表示,您會針對每個部署範圍使用不同的 Azure CLI 命令,如下所示:

若要在此範圍進行部署: 執行此 Azure CLI 命令:
資源群組 az deployment group create
訂用帳戶 az deployment sub create
管理群組 az deployment mg create
租用戶 az deployment tenant create

啟動部署時,您必須告訴 Azure 要將其部署至哪個範圍。 這表示您會針對每個部署範圍使用不同的 PowerShell Cmdlet,如下所示:

若要在此範圍進行部署: 使用此 PowerShell Cmdlet:
資源群組 New-AzResourceGroupDeployment
訂用帳戶 New-AzSubscriptionDeployment
管理群組 New-AzManagementGroupDeployment
租用戶 New-AzTenantDeployment

Azure 會儲存每個部署相關的中繼資料。 不同於資源群組範圍的部署,在其他範圍部署時,您需要提供某些資訊,讓 Azure 可以正確地儲存中繼資料:

  • 位置:部署中繼資料必須儲存在您指定的位置。 您不需要指定資源群組範圍部署的位置,因為部署中繼資料會使用與資源群組相同的位置。 然而,當您在訂用帳戶、管理群組或租用戶範圍建立部署時,必須指定要儲存部署中繼資料的 Azure 區域。 這些範圍中部署的資源不一定會建立在您為中繼資料指定的相同位置。

  • 名稱:Azure 中的所有部署都有名稱。 您可以使用其名稱來要求 Azure 取得部署的相關資訊。 當您使用 Azure CLI 或 Azure PowerShell 提交部署時,您不需要指定名稱。 但如果您未這麼做,範本檔案的檔名會做為部署名稱使用。

部署的範圍、位置和名稱組合必須是唯一的。 例如,假設您建立名為 my-deployment 的訂用帳戶部署,並使用美國東部位置來儲存其中繼資料。 您無法為同樣名為 my-deployment 的相同訂用帳戶建立另一個部署,即使它位於不同位置 (例如西歐)。 如果您在美國東部建立另一個名為 my-deployment 的部署,則會覆寫現有的部署。