Exerciții - Adăugarea parametrilor și ieșirilor la șablonul Azure Resource Manager
În acest exercițiu, adăugați un parametru pentru a defini numele contului de stocare Azure în timpul implementării. Apoi adăugați un parametru pentru a defini SKU-urile de cont de stocare permise și a defini pe care să le utilizați pentru această implementare. De asemenea, adăugați utilitate la șablonul Azure Resource Manager (șablon ARM), adăugând un rezultat pe care îl puteți utiliza mai târziu în procesul de implementare.
Crearea parametrilor pentru șablonul ARM
Aici vă faceți șablonul ARM mai flexibil, adăugând parametri care pot fi setați la momentul rulării. Creați un parametru pentru valoarea storageName.
În fișierul azuredeploy.json din Visual Studio Code, actualizați
"parameters":{},, astfel încât să arate astfel:"parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24, "metadata": { "description": "The name of the Azure storage resource" } } },Pentru a formata corect fișierul JSON, apăsați Alt+Shift+F.
Utilizați noul parametru din blocul
resourcesatât din valorilename, cât șidisplayName. Întregul fișier arată astfel:{ "$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": {} }Salvați fișierul.
Implementarea șablonului ARM parametrizat
Aici modificați numele implementării pentru a reflecta mai bine ce face această implementare și a completa o valoare pentru parametrul nou.
Rulați următoarele comenzi Azure CLI în terminal. Acest script este identic cu cel pe care l-ați utilizat anterior, cu excepția faptului că numele implementării a fost modificat. Introduceți o valoare unică pentru storageName parametru. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.
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}
Rulați următoarele comenzi Azure PowerShell în terminal. Acest script este identic cu cel pe care l-ați utilizat mai devreme, cu excepția faptului că numele implementării a fost schimbat. Introduceți o valoare unică pentru storageName parametru. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.
$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
-Name $deploymentName `
-TemplateFile $templateFile `
-storageName {your-unique-name}
Verificați implementarea
Când se termină implementarea, reveniți la portalul Azure în browser. Accesați grupul de resurse și vedeți că există acum 3 implementări reușite. Selectați acest link.
Observați că toate cele trei implementări se află în listă.
Explorați implementarea addnameparameter așa cum ați procedat anterior.
Adăugați un alt parametru care limitează valorile permise
Aici utilizați parametri pentru a limita valorile permise pentru un parametru.
Adăugați un nou parametru numit
storageSKUlaparameterssecțiunea fișierului azuredeploy.json .// 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" ] }Prima linie este un comentariu. Șabloanele ARM acceptă
//și/* */comentarii.Actualizați resursele pentru a utiliza parametrul
storageSKU. Dacă beneficiați de IntelliSense în Visual Studio Code, acest pas vă ajută să faceți acest pas mai ușor."sku": { "name": "[parameters('storageSKU')]" }Întregul fișier arată astfel:
{ "$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": {} }Salvați fișierul.
Implementarea șablonului ARM
Aici implementați cu succes utilizând un parametru storageSKU care se află în lista de permisiuni. Apoi încercați să implementați șablonul utilizând un parametru storageSKU care nu se află în lista permisă. A doua implementare nu reușește așa cum era de așteptat.
Implementați șablonul rulând următoarele comenzi. Completați un nume unic pentru parametrul
storageName. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.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}Permiteți terminarea acestei implementări. Această implementare reușește așa cum era de așteptat. Lista de valori permise împiedică utilizatorii șablonului să treacă în valori parametri care nu funcționează pentru resursă. Să vedem ce se întâmplă atunci când furnizați un SKU nevalid.
Rulați următoarele comenzi pentru a implementa șablonul cu un parametru care nu este permis. Aici ați modificat parametrul
storageSKUla De bază. Completați un nume unic pentru parametrulstorageName. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.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}Această implementare nu reușește. Observați eroarea.
Implementați șablonul rulând următoarele comenzi. Completați un nume unic pentru parametrul
storageName. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_GRSPermiteți terminarea acestei implementări. Această implementare reușește așa cum era de așteptat. Lista de valori permise împiedică utilizatorii șablonului să treacă în valori parametri care nu funcționează pentru resursă. Să vedem ce se întâmplă atunci când furnizați un SKU nevalid.
Rulați următoarele comenzi pentru a implementa șablonul cu un parametru care nu este permis. Aici ați modificat parametrul
storageSKUla De bază. Completați un nume unic pentru parametrulstorageName. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU BasicAceastă implementare nu reușește. Observați eroarea.
Adăugarea de ieșire la șablonul ARM
Aici adăugați la secțiunea outputs a șablonului ARM pentru a genera punctele finale pentru resursa contului de stocare.
În fișierul azuredeploy.json din Visual Studio Code, actualizați
"outputs":{},astfel încât să arate astfel:"outputs": { "storageEndpoint": { "type": "object", "value": "[reference(parameters('storageName')).primaryEndpoints]" } }Salvați fișierul.
Implementarea șablonului ARM cu o ieșire
Aici implementați șablonul și vedeți rezultatul punctelor finale ca JSON. Trebuie să completați un nume unic pentru parametrul storageName. Trebuie să fie unic la nivel global în Azure, să conțină între 3 și 24 de caractere și să includă numai litere mici, cifre și cratime. Puteți reutiliza numele unic pe care l-ați creat în unitatea anterioară; dacă faceți acest lucru, Azure va actualiza resursa existentă în loc să creeze una nouă.
Implementați șablonul rulând următoarele comenzi. Nu uitați să înlocuiți {your-unique-name} cu un șir unic pentru dvs.
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}Observați rezultatul.
Implementați șablonul rulând următoarele comenzi. Nu uitați să înlocuiți {your-unique-name} cu un șir unic pentru dvs.
$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addOutputs-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_LRSObservați rezultatul.
Verificați implementarea de ieșire
În portalul Azure, accesați addOutputs implementare. Puteți găsi ieșirea și acolo.