練習 - 建立和部署 Azure Resource Manager 範本
注意
當您第一次啟動沙箱並接受條款時,您的 Microsoft 帳戶會與名為「Microsoft Learn 沙箱」的新 Azure 目錄建立關聯。 系統也會將您新增至名為「指引訂用帳戶」的特殊訂用帳戶。
在此練習中,您會建立 Azure Resource Manager (ARM) 範本、將其部署至 Azure,然後更新該 ARM 範本來新增參數和輸出。
此練習會使用適用於 Visual Studio Code 的 Azure Resource Manager 工具。 請務必在 Visual Studio Code 中安裝此延伸模組,然後再開始練習。
建立 ARM 範本
開啟 Visual Studio Code,並建立一個名為 azuredeploy.json 的新檔案。
Visual Studio Code ARM 範本延伸模組已設定可協助您開發範本的程式碼片段。 讓我們從新增空白範本開始。 在檔案的第 1 行,輸入 arm。
Visual Studio Code 會自動顯示數個以 arm! 開頭的潛在選擇。 選取 [Azure Resource Manager (ARM) 範本]。 Visual Studio Code 會自動處理範本的結構描述和語言。
檔案現在看起來像這樣:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "functions": [], "variables": {}, "resources": [], "outputs": {} }
請注意,此檔案包含我們在上一個單元中描述過的 ARM 範本的所有區段。
按 Ctrl+S 將變更儲存至檔案。
將 ARM 範本部署至 Azure
若要將此範本部署至 Azure,您必須從 Visual Studio Code 終端機登入您的 Azure 帳戶。 請確定您已安裝 Azure CLI 工具,並使用您用來啟動沙箱的相同帳戶進行登入。
選取 [終端機 > 新增終端機] 以開啟終端機視窗。
如果終端視窗的命令列顯示 bash,您即有正確的殼層可供使用,因此您可以跳到下一節。
否則,請選取下拉式功能表,然後選擇 [選取預設設定檔]。
選取 [Git Bash]。
選取 [終端機 > 新增終端機] 以開啟 Bash 殼層終端機視窗。
登入 Azure
在終端機視窗中,執行此命令以登入 Azure。
az login
在開啟的瀏覽器視窗中,登入您的帳戶。 登入之後,與此帳戶相關聯的訂用帳戶清單會顯示在終端機中。 如果您已啟動沙箱,則應會看到名為「指引訂用帳戶」的訂用帳戶。 在練習的其餘部分中使用此訂用帳戶。
在 Bash 殼層中,執行下列命令,為您在此工作階段中執行的所有 Azure CLI 命令設定預設訂用帳戶。
az account set --subscription "Concierge Subscription"
如果您最近已使用多個沙箱,可能會列出多個「指引訂用帳戶」。 如果是,請使用接下來的兩個步驟來識別並設定預設訂用帳戶。
- 執行下列命令以取得「指引訂用帳戶」識別碼。
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
- 執行下列命令來設定預設訂用帳戶,將 {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 工具,然後登入已啟動沙箱的相同帳戶。
在命令列中,選取 [終端機 > 新增終端機] 以開啟 PowerShell 視窗。
如果終端視窗的命令列顯示 PowerShell,您即有正確的殼層可供使用,因此您可以跳到下一節。
如果未顯示,請選取向下箭號,然後在下拉式清單中選取 PowerShell。 如果遺漏該選項,請選取 [選取預設設定檔]。
在輸入欄位中,向下捲動並選取 [PowerShell]。
選取 [終端機 > 新增終端機] 以開啟 PowerShell 殼層終端機視窗。
使用 Azure PowerShell 登入 Azure
從 Visual Studio Code 中的終端機,執行下列命令以登入 Azure。 瀏覽器隨即開啟,讓您可以登入您的帳戶。
Connect-AzAccount
提示
Az PowerShell 模組取代了 AzureRM,是用來與 Azure 互動的建議版本。
使用您用來啟動沙箱的帳戶登入。 登入後,Visual Studio Code 會在終端機視窗中列出與您帳戶相關聯的訂用帳戶。 如果已啟動沙箱,您會看到包含
"name": "Concierge Subscription"
的程式碼區塊。 您可以在其餘的練習中使用此訂用帳戶。
針對此工作階段中的所有 PowerShell 命令設定預設訂用帳戶
執行下列命令來取得您的訂用帳戶及其識別碼。 訂用帳戶識別碼是第二個資料行。 尋找「指引訂用帳戶」,並複製第二個資料行中的值。 其看起來像 aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e:
Get-AzSubscription
執行下列命令,將 {Your subscription ID} 取代為您在上一個步驟中複製的訂用帳戶識別碼。 此命令會將您的作用中訂用帳戶變更為指引訂用帳戶。
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
執行下列命令,讓預設資源群組成為沙箱環境中為您建立的資源群組。 此動作可讓您從此練習中的其餘 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 沙箱] 目錄。
在 [資源] 功能表中,選取 [資源群組]。
選取
[sandbox resource group name] 資源群組。在 [概觀] 窗格上,您會看到部署成功。
選取 [1 成功] 以查看部署的詳細資料。
選取
blanktemplate
來查看已部署的資源。 在此情況下,這是空的,因為您尚未在範本中指定任何資源。讓頁面在瀏覽器中保持開啟狀態,以便再次檢查部署。
將資源新增至 ARM 範本
在上一個工作中,您已經了解如何建立空白範本,並加以部署。 現在,您已經準備好部署實際的資源。 在此工作中,您要使用適用於 Visual Studio Code 的 Azure Resource Manager 工具延伸模組中的程式碼片段,將 Azure 儲存體帳戶資源新增至 ARM 範本。
在 Visual Studio Code 的 azuredeploy.json 檔案中,將您的游標放在
"resources":[],
區塊中的大括弧內。在括弧內輸入 [儲存體]。 隨即顯示相關程式碼片段的清單。 選取 arm-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 鍵來瀏覽。
請注意,
tags
和location
屬性已填入。location
屬性會使用函式,將資源的位置設定為資源群組的位置。 您會在下一個課程模組中了解標籤和函式。將資源 name: 和 displayName: 的值變更為唯一的值 (例如,learnexercise12321)。 此名稱在所有 Azure 中必須是唯一的,因此請選擇您的唯一名稱。
將 sku name 的值從 Premium_LRS 變更為 Standard_LRS。 將 tier 的值變更為 Standard。 請注意,Visual Studio Code 會在 IntelliSense 中為您的屬性值提供適當的選擇。 刪除預設值 (包括引號),並輸入引號以查看此工作。
資源位置會設定為與在其中部署資源的資源群組相同的位置。 在這裡,保留預設值。
儲存檔案。
部署已更新的 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
檢查您的部署
部署完成時,請在瀏覽器中返回 Azure 入口網站。 移至您的資源群組,您會看到現在有 2 個成功部署。 選取此連結。
請注意,兩個部署都在清單中。
選取 addstorage。
請注意,已部署儲存體帳戶。