共用方式為


教學課程:建立具有相依資源的 ARM 範本

了解如何建立 Azure Resource Manager 範本 (ARM 範本) 以部署多個資源,以及設定部署順序。 建立範本之後,您會使用來自 Azure 入口網站 的 Azure Cloud Shell 進行部署。

在本教學課程中,您會建立儲存體帳戶、虛擬機器、虛擬網路和其他相依資源。 有些資源必須等到另一個資源存在,才能部署。 例如,在虛擬機器的儲存體帳戶和網路介面存在之前,您無法建立虛擬機器。 您可以藉由讓某個資源相依於其他資源,來定義此關聯性。 資源管理員會評估資源之間的相依性,並依其相依順序進行部署。 如果資源並未彼此相依,Resource Manager 就會平行部署資源。 如需詳細資訊,請參閱定義在 ARM 範本中部署資源的順序

此圖顯示 Resource Manager 範本中相依資源的部署順序。

本教學課程涵蓋下列工作:

  • 開啟快速入門範本
  • 瀏覽範本
  • 部署範本

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

如需涵蓋資源相依性的 Learn 模組,請參閱使用進階 ARM 範本功能,管理複雜的雲端部署

必要條件

若要完成本文,您需要:

開啟快速入門範本

Azure 快速入門範本是 ARM 範本的存放庫。 您可以尋找範例範本並加以自訂,而不要從頭建立範本。 本教學課程中使用的範本名為部署簡單的 Windows VM

  1. 在 Visual Studio Code 中,選取 [檔案]>[開啟檔案]

  2. 在 [檔案名稱] 中,貼上下列 URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. 選取 [開啟] 以開啟檔案。

  4. 選取 [檔案]>[另存新檔],以名稱 azuredeploy.json 將檔案的複本儲存至您的本機電腦。

瀏覽範本

當您探索這一節中的範本時,請試著回答下列問題:

  • 此範本中定義了多少 Azure 資源?
  • 其中一項資源是 Azure 儲存體帳戶。 定義是否與最後一個教學課程中使用的定義相仿?
  • 您是否可找到此範本中定義的資源所適用的範本參考?
  • 您是否可找到資源的相依性?
  1. 在 Visual Studio Code 中摺疊元素,直到您只看到 resources 內的第一層元素和第二層元素:

    Visual Studio Code 的螢幕快照,其中顯示具有折疊元素的 ARM 範本。

    範本中定義了六項資源:

  2. 展開第一項資源。 這是儲存體帳戶。 將資源定義與範本參考相比較。

    Visual Studio Code 的螢幕快照,其中顯示 ARM 範本中的記憶體帳戶定義。

  3. 展開第二項資源。 資源類型為 Microsoft.Network/publicIPAddresses。 將資源定義與範本參考相比較。

    Visual Studio Code 的螢幕快照,其中顯示 ARM 範本中的公用 IP 位址定義。

  4. 展開第三項資源。 資源類型為 Microsoft.Network/networkSecurityGroups。 將資源定義與範本參考相比較。

    Visual Studio Code 的螢幕快照,其中顯示 ARM 範本中的網路安全組定義。

  5. 展開第四項資源。 資源類型為 Microsoft.Network/virtualNetworks

    Visual Studio Code 的螢幕快照,其中顯示 ARM 範本中 dependsOn 元素的虛擬網路定義。

    dependsOn 元素可讓您定義一項資源,作為一或多項資源的相依項目。 此資源依存於另一項資源:

    • Microsoft.Network/networkSecurityGroups
  6. 展開第五項資源。 資源類型為 Microsoft.Network/networkInterfaces。 此資源依存於其他兩項資源:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. 展開第六項資源。 此資源是虛擬機器。 它依存於其他兩項資源:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

下圖說明此範本的資源和相依性資訊:

此圖顯示 Visual Studio Code 中所顯示 ARM 範本中資源之間的相依性關聯性。

藉由指定相依性,Resource Manager 將可有效部署解決方案。 它會以平行方式部署儲存體帳戶、公用 IP 位址和虛擬網路,因為它們沒有相依性。 在公用 IP 位址和虛擬網路部署之後,會建立網路介面。 當所有其他資源皆部署後,Resource Manager 會部署虛擬機器。

部署範本

  1. 登入 Cloud Shell

  2. 選取左上角的PowerShell或Bash(適用於CLI),以選擇您慣用的環境。 切換時重新啟動殼層。

    Azure 入口網站 Cloud Shell 的螢幕快照,其中已醒目提示上傳檔案選項。

  3. 選取 [上傳/下載檔案],然後選取 [上傳]。 請參閱上述螢幕快照。 選取您稍早儲存的檔案。 上傳檔案之後,請使用 ls 命令和 cat 命令來確認已成功上傳檔案。

  4. 若要部署範本,請執行下列 PowerShell 腳本。

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. RDP 至虛擬機,以確認已成功建立虛擬機。

清除資源

當您不再需要 Azure 資源時,請刪除資源群組來清除您部署的資源。

  1. 在 Azure 入口網站中,選取左側功能表中的 [資源群組]
  2. 在 [依名稱篩選] 欄位中輸入資源群組名稱。
  3. 選取資源群組名稱。 您會在資源群組中看到總共六個資源。
  4. 從頂端功能表中選取 [刪除資源群組]

下一步

在本教學課程中,您已開發和部署用來建立虛擬機器、虛擬網路和相依資源的範本。 若要了解如何使用部署指令碼來執行部署前/後的作業,請參閱: