Övning – Lägga till parametrar till din Azure Resource Manager-mall
I den här övningen lägger du till en parameter för att definiera Azure-lagringskontots namn under distributionen. Sedan lägger du till en parameter för att definiera vilka SKU:er för lagringskonto som tillåts och definiera vilken som ska användas för den här distributionen. Du kan också lägga till användbarhet i Azure Resource Manager-mallen (ARM-mall) genom att lägga till utdata som du kan använda senare i distributionsprocessen.
Skapa parametrar för ARM-mallen
Här gör du din ARM-mall mer flexibel genom att lägga till parametrar som kan ställas in vid körning. Skapa en parameter för storageName-värdet.
I azuredeploy.json-filen i Visual Studio Code, uppdaterar du
"parameters":{},, så att det ser ut så här:"parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24, "metadata": { "description": "The name of the Azure storage resource" } } },Om du vill formatera JSON-filen korrekt trycker du på Alt+Skift+F.
Använd den nya parametern i
resources-blocket i värdenanameochdisplayName. Hela filen ser ut som det här kodexemplet:{ "$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, "metadata": { "description": "The name of the Azure storage resource" } } }, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2025-01-01", "name": "[parameters('storageName')]", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Standard_LRS" } } ], "outputs": {} }Spara filen.
Distribuera den parametriserade ARM-mallen
Här ändrar du distributionens namn så att det bättre återspeglar vad distributionen gör och fyller i ett värde för den nya parametern.
Kör följande Azure CLI-kommandon i terminalen. Det här skriptet är identiskt med det som du använde tidigare, förutom att distributionsnamnet har ändrats. Ange ett unikt värde för parametern storageName . Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.
templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addnameparameter-"$today
az deployment group create \
--name $DeploymentName \
--template-file $templateFile \
--parameters storageName={your-unique-name}
Kör följande Azure PowerShell-kommandon i terminalen. Det här skriptet är identiskt med det du använde tidigare, förutom att distributionsnamnet har ändrats. Ange ett unikt värde för parametern storageName . Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.
$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
-Name $deploymentName `
-TemplateFile $templateFile `
-storageName {your-unique-name}
Kontrollera distributionen
När distributionen är klar går du tillbaka till Azure Portal i webbläsaren. Gå till resursgruppen och se att det nu finns 3 lyckade distributioner. Välj den här länken.
Observera att alla tre distributionerna finns i listan.
Utforska deployeringen av addnameparameter, precis som du gjorde tidigare.
Lägg till en annan parameter som begränsar tillåtna värden
Här använder du parametrar för att begränsa de värden som tillåts för en parameter.
Lägg till en ny parameter med namnet
storageSKUiparametersavsnittet i azuredeploy.json-filen .// This is the allowed values for an Azure storage account "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }Den första raden är en kommentar. ARM-mallar kan användas med
//- och/* */-kommentarer.Uppdatera resurser så att parametern
storageSKUanvänds. Om du drar nytta av IntelliSense i Visual Studio Code gör det här steget enklare."sku": { "name": "[parameters('storageSKU')]" }Hela filen ser ut som det här kodexemplet:
{ "$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, "metadata": { "description": "The name of the Azure storage resource" } }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2025-01-01", "name": "[parameters('storageName')]", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } } ], "outputs": {} }Spara filen.
Distribuera ARM-mallen
Här distribuerar du med hjälp av en storageSKU-parameter som finns i listan över tillåtna parametrar. Sedan försöker du distribuera mallen med hjälp av en storageSKU parameter som inte finns i listan över tillåtna. Den andra distributionen misslyckas som förväntat.
Distribuera mallen genom att köra följande kommandon. Fyll i ett unikt namn för
storageName-parametern. Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addSkuParameter-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Standard_GRS storageName={your-unique-name}Vänta tills distributionen är färdig. Distributionen slutförs som förväntat. Din lista över tillåtna värden förhindrar att mallens användare skickar in parametervärden som inte fungerar för resursen. Vi ska se vad som händer när du anger en ogiltig SKU.
Kör följande kommandon för att distribuera mallen med en otillåten parameter. Här har du ändrat parametern
storageSKUtill Basic. Fyll i ett unikt namn förstorageName-parametern. Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addSkuParameter-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Basic storageName={your-unique-name}Den här distributionen misslyckas. Observera felet.
Distribuera mallen genom att köra följande kommandon. Fyll i ett unikt namn för
storageName-parametern. Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_GRSVänta tills distributionen är färdig. Distributionen slutförs som förväntat. Din lista över tillåtna värden förhindrar att mallens användare skickar in parametervärden som inte fungerar för resursen. Vi ska se vad som händer när du anger en ogiltig SKU.
Kör följande kommandon för att distribuera mallen med en otillåten parameter. Här har du ändrat parametern
storageSKUtill Basic. Fyll i ett unikt namn förstorageName-parametern. Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU BasicDen här distributionen misslyckas. Observera felet.
Lägga till utdata i ARM-mallen
Här lägger du till outputs-avsnittet i ARM-mallen för att skapa slutpunkter för lagringskontoresursen.
I filen azuredeploy.json i Visual Studio Code, uppdaterar du
"outputs":{},så att den ser ut så här:"outputs": { "storageEndpoint": { "type": "object", "value": "[reference(parameters('storageName')).primaryEndpoints]" } }Spara filen.
Distribuera ARM-mallen med utdata
Här distribuerar du mallen och ser utdata för slutpunkter som JSON. Du måste fylla i ett unikt namn för storageName-parametern. Den måste vara globalt unik i Azure, innehålla 3 till 24 tecken och endast innehålla gemener, siffror och bindestreck. Du kan återanvända det unika namn som du skapade i föregående lektion. Om du gör det uppdaterar Azure den befintliga resursen i stället för att skapa en ny.
Distribuera mallen genom att köra följande kommandon. Se till att ersätta {your-unique-name} med en sträng som är unik för dig.
templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addoutputs-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Standard_LRS storageName={your-unique-name}Notera utdata.
Distribuera mallen genom att köra följande kommandon. Se till att ersätta {your-unique-name} med en sträng som är unik för dig.
$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addOutputs-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_LRSNotera utdata.
Kontrollera distributionen av utdata
Gå till din addOutputs-distribution i Azure-portalen. Du kan även hitta dina utdata där.