Oefening: parameters en uitvoer toevoegen aan uw Azure Resource Manager-sjabloon
In deze oefening voegt u een parameter toe om de naam van het Azure-opslagaccount te definiƫren tijdens de implementatie. Vervolgens voegt u een parameter toe om te definiƫren welke opslagaccount-SKU's zijn toegestaan en definieert u welke moet worden gebruikt voor deze implementatie. U voegt ook nuttige informatie toe aan de Arm-sjabloon (Azure Resource Manager) door een uitvoer toe te voegen die u later in het implementatieproces kunt gebruiken.
Parameters voor de ARM-sjabloon maken
Hiermee maakt u uw ARM-sjabloon flexibeler door parameters toe te voegen die tijdens runtime kunnen worden ingesteld. Maak een parameter voor de waarde storageName.
Werk in het azuredeploy.json-bestand in Visual Studio Code
"parameters":{},bij, zodat het er als volgt uitziet:"parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24, "metadata": { "description": "The name of the Azure storage resource" } } },Als u het JSON-bestand correct wilt opmaken, drukt u op Alt+Shift+F.
Gebruik de nieuwe parameter in het blok
resourcesvoor de waardennameendisplayName. Het hele bestand ziet er als volgt uit:{ "$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": {} }Sla het bestand op.
De geparameteriseerde ARM-sjabloon implementeren
Hier wijzigt u de naam van de implementatie om beter te laten zien wat deze implementatie doet, en vult u een waarde in voor de nieuwe parameter.
Voer in de terminal de volgende Azure CLI-opdrachten uit. Dit script is identiek aan het script dat u eerder hebt gebruikt, behalve dat de implementatienaam is gewijzigd. Voer een unieke waarde in voor de storageName parameter. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.
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}
Voer in de terminal de volgende Azure PowerShell-opdrachten uit. Dit script is identiek aan het script dat u eerder hebt gebruikt, behalve dat de implementatienaam is gewijzigd. Voer een unieke waarde in voor de storageName parameter. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.
$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
-Name $deploymentName `
-TemplateFile $templateFile `
-storageName {your-unique-name}
Uw implementatie controleren
Wanneer de implementatie is voltooid, gaat u terug naar Azure Portal in uw browser. Ga naar uw resourcegroep en kijk of er nu drie geslaagde implementaties zijn. Selecteer deze koppeling.
Zoals u ziet worden alle drie de implementaties in de lijst vermeld.
Verken de implementatie van addnameparameter zoals u eerder hebt gedaan.
Een andere parameter toevoegen waarmee toegestane waarden worden beperkt
Hier gaat u parameters gebruiken om de waarden te beperken die zijn toegestaan voor een parameter.
Voeg een nieuwe parameter toe met de naam
storageSKUaan deparameterssectie van het azuredeploy.json-bestand .// 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" ] }De eerste regel is een opmerking. ARM-sjablonen ondersteunen
//- en/* */-opmerkingen.Werk resources bij om de
storageSKUparameter te gebruiken. Als u gebruikmaakt van IntelliSense in Visual Studio Code, is deze stap eenvoudiger."sku": { "name": "[parameters('storageSKU')]" }Het hele bestand ziet er als volgt uit:
{ "$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": {} }Sla het bestand op.
De ARM-sjabloon implementeren
Hier voert u de implementatie succesvol uit met behulp van een storageSKU-parameter die op de lijst met toegestane waarden staat. Vervolgens probeert u de sjabloon te implementeren met behulp van een storageSKU parameter die zich niet in de lijst met toegestane waarden bevindt. De tweede implementatie mislukt zoals verwacht.
Implementeer de sjabloon door de volgende opdrachten uit te voeren. Vul een unieke naam in voor de parameter
storageName. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.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}Wacht tot de implementatie is voltooid. Deze implementatie lukt zoals verwacht. Uw lijst met toegestane waarden voorkomt dat de gebruikers van uw sjabloon parameterwaarden doorgeven die niet werken voor de resource. Laten we eens kijken wat er gebeurt als u een ongeldige SKU opgeeft.
Voer de volgende opdrachten uit om de sjabloon te implementeren met een parameter die niet is toegestaan. Hier hebt u de
storageSKUparameter gewijzigd in Basic. Vul een unieke naam in voor de parameterstorageName. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.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}Deze implementatie mislukt. Let op de fout.
Implementeer de sjabloon door de volgende opdrachten uit te voeren. Vul een unieke naam in voor de parameter
storageName. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_GRSWacht tot de implementatie is voltooid. Deze implementatie lukt zoals verwacht. Uw lijst met toegestane waarden voorkomt dat de gebruikers van uw sjabloon parameterwaarden doorgeven die niet werken voor de resource. Laten we eens kijken wat er gebeurt als u een ongeldige SKU opgeeft.
Voer de volgende opdrachten uit om de sjabloon te implementeren met een parameter die niet is toegestaan. Hier hebt u de
storageSKUparameter gewijzigd in Basic. Vul een unieke naam in voor de parameterstorageName. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU BasicDeze implementatie mislukt. Let op de fout.
Uitvoer toevoegen aan de ARM-sjabloon
Hier gaat u waarden toevoegen aan de sectie outputs van de ARM-sjabloon waarmee de eindpunten voor de opslagaccountresource als uitvoer worden geretourneerd.
Werk in het azuredeploy.json-bestand in Visual Studio Code
"outputs":{},bij zodat het er als volgt uitziet:"outputs": { "storageEndpoint": { "type": "object", "value": "[reference(parameters('storageName')).primaryEndpoints]" } }Sla het bestand op.
De ARM-sjabloon met uitvoer implementeren
Hier implementeert u de sjabloon en ziet u de uitvoer in de vorm van eindpunten in JSON-indeling. U moet een unieke naam invullen voor de parameter storageName. Deze moet globaal uniek zijn in Azure, mag uit 3 tot 24 tekens bestaan en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. U kunt de unieke naam die u in de vorige les hebt gemaakt, opnieuw gebruiken; Als u dit doet, werkt Azure de bestaande resource bij in plaats van een nieuwe resource te maken.
Implementeer de sjabloon door de volgende opdrachten uit te voeren. Zorg ervoor dat u {your-unique-name} vervangt door een tekenreeks die uniek is voor u.
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}Let op de uitvoer.
Implementeer de sjabloon door de volgende opdrachten uit te voeren. Zorg ervoor dat u {your-unique-name} vervangt door een tekenreeks die uniek is voor u.
$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addOutputs-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_LRSLet op de uitvoer.
Controleer uw uitvoerimplementatie
Ga in Azure Portal naar uw addOutputs-implementatie . Hier vindt u ook uw uitvoer.