在 上一個教學課程中,您已瞭解如何將 Azure 儲存體帳戶 新增至範本並部署它。 在本教學課程中,您將瞭解如何藉由新增參數來改善 Azure Resource Manager 範本 (ARM 範本)。 此指示需要 14 分鐘 才能完成。
先決條件
建議您完成 有關資源的教學課程,但這不是必要條件。
您必須有 Visual Studio Code,以及 Azure PowerShell 或 Azure CLI。 如需詳細資訊,請參閱 範本工具。
審查模板
在上一個教學課程的結尾,您的範本具有下列 JSON 檔案:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "{provide-unique-name}",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
您可能會注意到此模板有問題。 儲存體帳戶名稱是硬式編碼的。 您每次都只能使用此範本來部署相同的儲存體帳戶。 若要部署具有不同名稱的儲存體帳戶,您必須建立新的範本,這顯然不是自動化部署的實用方式。
使模板可重複使用
若要讓您的範本可重複使用,讓我們新增可用來傳入儲存體帳戶名稱的參數。 下列範例中的 JSON 檔案顯示範本中的變更。 參數 storageName 會識別為字串。 儲存體帳戶名稱都是小寫字母或數字,且限制為 24 個字元。
將整個檔案複製,並以其內容替換您的範本:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
部署範本
讓我們部署範本。 下列範例會使用 Azure CLI 或 Azure PowerShell 來部署範本。 請注意,您會提供儲存體帳戶名稱作為部署命令中的其中一個值。 針對儲存體帳戶名稱,請提供您在上一個教學課程中使用的相同名稱。
如果您尚未建立資源群組,請參閱 建立資源群組。 此範例假設您將變數設定 templateFile 為範本檔案的路徑,如 第一個教學課程所示。
New-AzResourceGroupDeployment `
-Name addnameparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}"
瞭解資源更新
部署具有先前使用相同名稱的儲存體帳戶之後,您可能想知道重新部署如何影響資源。
如果資源已存在,且屬性沒有變更,則不需要採取進一步動作。 如果資源存在且屬性變更,則會更新。 如果它不存在,即會加以建立。
這種處理更新的方式表示您的範本可以包含 Azure 解決方案所需的所有資源。 您可以安全地重新部署範本,並知道資源會變更或僅在需要時建立。 例如,如果您將檔案新增至儲存體帳戶,您可以重新部署儲存體帳戶,而不會遺失檔案。
依環境自訂
參數可讓您提供針對特定環境量身打造的值,以自訂部署。 例如,您可以根據部署至開發、測試或生產環境來傳遞不同的值。
先前的範本一律會部署標準本機備援儲存體 (LRS) Standard_LRS 帳戶。 您可能希望根據環境靈活地部署不同的庫存單位 (SKU)。 下列範例顯示新增 SKU 參數的變更。 複製整個檔案,並將其貼到範本上:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageName')]",
"location": "eastus",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
參數 storageSKU 具有預設值。 當部署未指定此值時,請使用此值。 它還有一個允許值的列表。 這些值符合建立儲存體帳戶所需的值。 您希望範本使用者傳遞有效的SKU。
重新部署範本
您已準備好再次部署。 由於預設 SKU 設定為 Standard_LRS,因此您已提供參數值。
New-AzResourceGroupDeployment `
-Name addskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}"
備註
如果部署失敗,請使用 verbose 交換器來取得所建立資源的相關資訊。 使用 debug 選項來獲取更多調試相關的資訊。
若要查看範本的彈性,讓我們再次部署它。 這次將 SKU 參數設定為標準異地備援儲存體 (GRS) Standard_GRS。 您可以傳入新名稱來建立不同的儲存體帳戶,或使用相同的名稱來更新現有的儲存體帳戶。 這兩種選擇都有效。
New-AzResourceGroupDeployment `
-Name usenondefaultsku `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU Standard_GRS
最後,讓我們再執行一個測試,看看當您傳入不是允許值之一的 SKU 時會發生什麼。 在此情況下,我們會測試範本使用者認為 basic 是其中一個 SKU 的情境。
New-AzResourceGroupDeployment `
-Name testskuparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{your-unique-name}" `
-storageSKU basic
命令會立即失敗,並顯示包含允許值的錯誤訊息。 ARM 處理器會在部署開始之前找到錯誤。
清理資源
如果您要繼續進行下一個教學課程,則不需要刪除資源群組。
如果您現在要停止,您可能會想要移除資源群組以清理已部署的資源。
- 從 Azure 入口網站 中,從左側功能表中選取 [資源群組 ]。
- 在 [篩選任何欄位... ] 文字欄位中輸入資源群組名稱。
- 核取 myResourceGroup 旁邊的方塊,然後選取 myResourceGroup 或您的資源群組名稱。
- 從頂端功能表選取 [刪除資源群組 ]。
後續步驟
您透過新增參數來改善您在 第一個教學課程 中建立的範本。 在下一個教學課程中,您將瞭解範本函式。