練習 - 建立和部署 Azure Resource Manager 範本

已完成

注意

當您第一次啟動沙箱並接受條款時,您的 Microsoft 帳戶會與名為「Microsoft Learn 沙箱」的新 Azure 目錄建立關聯。 系統也會將您新增至名為「指引訂用帳戶」的特殊訂用帳戶。

在此練習中,您會建立 Azure Resource Manager (ARM) 範本、將其部署至 Azure,然後更新該 ARM 範本來新增參數和輸出。

此練習會使用適用於 Visual Studio Code 的 Azure Resource Manager 工具。 請務必在 Visual Studio Code 中安裝此延伸模組,然後再開始練習。

建立 ARM 範本

  1. 開啟 Visual Studio Code,並建立一個名為 azuredeploy.json 的新檔案。

  2. Visual Studio Code ARM 範本延伸模組已設定可協助您開發範本的程式碼片段。 讓我們從新增空白範本開始。 在檔案的第 1 行,輸入 arm

  3. Visual Studio Code 會自動顯示數個以 arm! 開頭的潛在選擇。 選取 [Azure Resource Manager (ARM) 範本]。 Visual Studio Code 會自動處理範本的結構描述和語言。

    Visual Studio Code azuredeploy.json 檔案,顯示適用於 Azure Resource Manager 範本的程式碼片段選擇。

    檔案現在看起來像這樣:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [],
      "outputs": {}
    }
    

    請注意,此檔案包含我們在上一個單元中描述過的 ARM 範本的所有區段。

  4. Ctrl+S 將變更儲存至檔案。

將 ARM 範本部署至 Azure

若要將此範本部署至 Azure,您必須從 Visual Studio Code 終端機登入您的 Azure 帳戶。 請確定您已安裝 Azure CLI 工具,並使用您用來啟動沙箱的相同帳戶進行登入。

  1. 選取 [終端機 > 新增終端機] 以開啟終端機視窗。

  2. 如果終端視窗的命令列顯示 bash,您即有正確的殼層可供使用,因此您可以跳到下一節。

  3. 否則,請選取下拉式功能表,然後選擇 [選取預設設定檔]。

    下拉式功能表中具有 Bash 的 Visual Studio Code 終端視窗的螢幕擷取畫面。

  4. 選取 [Git Bash]

    顯示 [選取殼層] 下拉式功能表的 Visual Studio Code 終端視窗的螢幕擷取畫面。

  5. 選取 [終端機 > 新增終端機] 以開啟 Bash 殼層終端機視窗。

登入 Azure

  1. 在終端機視窗中,執行此命令以登入 Azure。

    az login
    
  2. 在開啟的瀏覽器視窗中,登入您的帳戶。 登入之後,與此帳戶相關聯的訂用帳戶清單會顯示在終端機中。 如果您已啟動沙箱,則應會看到名為「指引訂用帳戶」的訂用帳戶。 在練習的其餘部分中使用此訂用帳戶。

  3. 在 Bash 殼層中,執行下列命令,為您在此工作階段中執行的所有 Azure CLI 命令設定預設訂用帳戶。

    az account set --subscription "Concierge Subscription"
    

    如果您最近已使用多個沙箱,可能會列出多個「指引訂用帳戶」。 如果是,請使用接下來的兩個步驟來識別並設定預設訂用帳戶。

    1. 執行下列命令以取得「指引訂用帳戶」識別碼。
     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
    1. 執行下列命令來設定預設訂用帳戶,將 {your subscription ID} 取代為最新的指引訂用帳戶識別碼。
    az account set --subscription {your subscription ID}
    

設定預設資源群組

藉由將預設資源群組設定為您啟動沙箱時所建立的資源群組,您可以從這個練習中的 Azure CLI 命令中省略該參數。 若要設定資源群組,請執行下列命令。

az configure --defaults group=<rgn>[sandbox resource group name]</rgn>

將範本部署至 Azure

執行下列命令以將 ARM 範本部署至 Azure。 ARM 範本尚未有任何資源,因此不會有任何已建立的資源。 您應該取得成功的部署。

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

上述程式碼的上半部會設定 Azure CLI 變數,包括所要部署範本檔案的路徑以及此部署的名稱。 底部區段 az deployment group create 會將範本部署至 Azure。 請注意,部署名稱是 blanktemplate,並以日期做為尾碼。

您應該在終端中看到 Running...

若要將此範本部署至 Azure,您必須從 Visual Studio Code 終端機登入您的 Azure 帳戶。 請確定已從 Visual Studio Code 延伸模組安裝 Azure PowerShell 工具,然後登入已啟動沙箱的相同帳戶。

  1. 在命令列中,選取 [終端機 > 新增終端機] 以開啟 PowerShell 視窗。

  2. 如果終端視窗的命令列顯示 PowerShell,您即有正確的殼層可供使用,因此您可以跳到下一節。

    Visual Studio Code 終端機視窗的螢幕擷取畫面,其中已選取 'pwsh' 終端機。

    1. 如果未顯示,請選取向下箭號,然後在下拉式清單中選取 PowerShell。 如果遺漏該選項,請選取 [選取預設設定檔]

    2. 在輸入欄位中,向下捲動並選取 [PowerShell]

      顯示 [選取殼層] 下拉式功能表的 Visual Studio Code 終端視窗的螢幕擷取畫面。

    3. 選取 [終端機 > 新增終端機] 以開啟 PowerShell 殼層終端機視窗。

使用 Azure PowerShell 登入 Azure

  1. 從 Visual Studio Code 中的終端機,執行下列命令以登入 Azure。 瀏覽器隨即開啟,讓您可以登入您的帳戶。

    Connect-AzAccount
    

    提示

    Az PowerShell 模組取代了 AzureRM,是用來與 Azure 互動的建議版本。

  2. 使用您用來啟動沙箱的帳戶登入。 登入後,Visual Studio Code 會在終端機視窗中列出與您帳戶相關聯的訂用帳戶。 如果已啟動沙箱,您會看到包含 "name": "Concierge Subscription" 的程式碼區塊。 您可以在其餘的練習中使用此訂用帳戶。

針對此工作階段中的所有 PowerShell 命令設定預設訂用帳戶

  1. 執行下列命令來取得您的訂用帳戶及其識別碼。 訂用帳戶識別碼是第二個資料行。 尋找「指引訂用帳戶」,並複製第二個資料行中的值。 其看起來像 aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e

    Get-AzSubscription
    
  2. 執行下列命令,將 {Your subscription ID} 取代為您在上一個步驟中複製的訂用帳戶識別碼。 此命令會將您的作用中訂用帳戶變更為指引訂用帳戶。

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  3. 執行下列命令,讓預設資源群組成為沙箱環境中為您建立的資源群組。 此動作可讓您從此練習中的其餘 Azure PowerShell 命令省略該參數。

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

將範本部署至 Azure

執行下列命令以將範本部署至 Azure。 ARM 範本尚未有任何資源,因此不會有任何已建立的資源。

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

上述程式碼的上半部會設定 Azure PowerShell 變數,包括部署檔案的路徑以及此部署的名稱。 然後,命令 New-AzResourceGroupDeployment 會將範本部署至 Azure。 請注意,部署名稱是 blanktemplate,並以日期做為尾碼。

當您將 ARM 範本部署至 Azure 時,請移至 Azure 入口網站,並確定您是在沙箱訂用帳戶中。 若要這麼做,請在頁面右上角選取您的虛擬人偶。 選取 [切換目錄]。 在清單中,選擇 [Microsoft Learn 沙箱] 目錄。

  1. 在 [資源] 功能表中,選取 [資源群組]

  2. 選取 [sandbox resource group name] 資源群組。

  3. 在 [概觀] 窗格上,您會看到部署成功。

    資源群組的 Azure 入口網站介面概觀,其中的 [部署] 區段顯示 [成功]。

  4. 選取 [1 成功] 以查看部署的詳細資料。

    部署的 Azure 入口網站介面,已列出一個部署且狀態為 [成功]。

  5. 選取 blanktemplate 來查看已部署的資源。 在此情況下,這是空的,因為您尚未在範本中指定任何資源。

    特定部署的 Azure 入口網站介面,其中未列出任何資源。

  6. 讓頁面在瀏覽器中保持開啟狀態,以便再次檢查部署。

將資源新增至 ARM 範本

在上一個工作中,您已經了解如何建立空白範本,並加以部署。 現在,您已經準備好部署實際的資源。 在此工作中,您要使用適用於 Visual Studio Code 的 Azure Resource Manager 工具延伸模組中的程式碼片段,將 Azure 儲存體帳戶資源新增至 ARM 範本。

  1. 在 Visual Studio Code 的 azuredeploy.json 檔案中,將您的游標放在 "resources":[], 區塊中的大括弧內。

  2. 在括弧內輸入 [儲存體]。 隨即顯示相關程式碼片段的清單。 選取 arm-storage

    顯示在類型字樣儲存體下方的 Visual Studio Code azure Resource Manager-storage 程式碼片段。

    您的檔案看起來像這樣:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2023-05-01",
          "name": "storageaccount1",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS"
          }
        }
      ],
      "outputs": {}
    }
    

    您應該編輯的值會在檔案的新區段中醒目提示,且可以按 Tab 鍵來瀏覽。

    請注意,tagslocation 屬性已填入。 location 屬性會使用函式,將資源的位置設定為資源群組的位置。 您會在下一個課程模組中了解標籤和函式。

  3. 將資源 name:displayName: 的值變更為唯一的值 (例如,learnexercise12321)。 此名稱在所有 Azure 中必須是唯一的,因此請選擇您的唯一名稱。

  4. 將 sku name 的值從 Premium_LRS 變更為 Standard_LRS。 將 tier 的值變更為 Standard。 請注意,Visual Studio Code 會在 IntelliSense 中為您的屬性值提供適當的選擇。 刪除預設值 (包括引號),並輸入引號以查看此工作。

    Visual Studio Code 的螢幕擷取畫面,其中顯示儲存體 SKU 名稱屬性的 IntelliSense 選擇。

  5. 資源位置會設定為與在其中部署資源的資源群組相同的位置。 在這裡,保留預設值。

  6. 儲存檔案。

部署已更新的 ARM 範本

在這裡,您要變更部署的名稱,以便更清楚地反映此部署的用途。

在終端機中執行下列 Azure CLI 命令。 此程式碼片段是您先前使用的相同程式碼,但部署的名稱已變更。

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

在終端機中執行下列 Azure PowerShell 命令。 此程式碼片段是您先前使用的相同程式碼,但部署的名稱已變更。

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

檢查您的部署

  1. 部署完成時,請在瀏覽器中返回 Azure 入口網站。 移至您的資源群組,您會看到現在有 2 個成功部署。 選取此連結。

    請注意,兩個部署都在清單中。

    部署的 Azure 入口網站介面螢幕擷取畫面,其中列出兩個部署且狀態為成功。

  2. 選取 addstorage

    特定部署的 Azure 入口網站介面螢幕擷取畫面,其中列出一個資源。

請注意,已部署儲存體帳戶。