Gyakorlat – paraméterek és kimenetek hozzáadása az Azure Resource Manager-sablonhoz
Ebben a gyakorlatban egy paramétert fog hozzáadni az Azure Storage-fiók nevének meghatározásához az üzembe helyezés során. Ezután hozzáad egy paramétert, amely meghatározza, hogy milyen tárfiók-termékváltozatok engedélyezettek, és meghatározza, hogy melyiket használja az üzemelő példányhoz. Hasznosságot is adhat az Azure Resource Manager-sablonhoz (ARM-sablonhoz), ha hozzáad egy kimenetet, amelyet később használhat az üzembe helyezési folyamat során.
Az ARM-sablon paramétereinek létrehozása
Itt rugalmasabbá teheti az ARM-sablont, ha olyan paramétereket ad hozzá, amelyek futásidőben állíthatók be. Hozzon létre egy paramétert a storageName
értékhez.
A Visual Studio Code azuredeploy.json fájljában helyezze a kurzort a kapcsos zárójelekbe a parameters attribútumban. A következőképpen néz ki:
"parameters":{},
Nyomja le az Enter gombot, majd írja be a par szöveget. Ekkor megjelenik a kapcsolódó kódrészletek listája. Válassza az új paramétert, amely egy általános paramétert ad hozzá a sablonhoz. Így néz ki:
"parameters": { "parameter1": { "type": "string", "metadata": { "description": "description" } } },
Módosítsa a paramétert az 1. paraméterről a StorageName paraméterre, és hagyja sztringként a típust. A minLength értéke 3, a maxLength értéke pedig 24 legyen. A leírás értékeként adja meg az Az Azure-tárerőforrás neve értéket.
A paraméterblokknak így kell kinéznie:
"parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24, "metadata": { "description": "The name of the Azure storage resource" } } },
Használja az új paramétert a
resources
blokkban mind aname
, mind adisplayName
értékéhez. A teljes fájl a következőképpen fog kinézni:{ "$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": [ { "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Standard_LRS", "tier": "Standard" } } ], "outputs": {} }
Mentse a fájlt.
A paraméteres ARM-sablon üzembe helyezése
Itt módosíthatja az üzembe helyezés nevét, hogy jobban tükrözze az üzemelő példányt, és adja meg az új paraméter értékét.
Futtassa az alábbi Azure CLI-parancsokat a terminálban. Ez a kódrészlet ugyanaz a kód, amelyet korábban használt, de az üzemelő példány neve módosult. Adjon meg egy egyedi nevet a storageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi leckében létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.
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}
Futtassa a következő Azure PowerShell-parancsokat a terminálban. Ez a kódrészlet ugyanaz a kód, amelyet korábban használt, de az üzemelő példány neve módosult. Adjon meg egy egyedi nevet a storageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi leckében létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.
$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
-Name $deploymentName `
-TemplateFile $templateFile `
-storageName {your-unique-name}
Az üzemelő példány ellenőrzése
Amikor az üzembe helyezés befejeződik, térjen vissza az Azure Portalra a böngészőben. Nyissa meg az erőforráscsoportot, és nézze meg, hogy 3 sikeres üzembe helyezés történt. Válassza ezt a hivatkozást.
Láthatja, hogy mindhárom üzemelő példány szerepel a listában.
Böngéssze az addnameparameter üzemelő példányt, ahogy korábban is tette.
Egy másik paraméter hozzáadása az engedélyezett értékek korlátozásához
Itt paraméterekkel korlátozza a paraméterek számára engedélyezett értékeket.
Mutasson a kurzorral a
storageName
paraméter záró kapcsos zárójele mögé. Adjon hozzá egy vesszőt, majd nyomja le az Enter billentyűt.Adja meg ismét a par értéket, és válassza ki az új paramétert.
Módosítsa az új általános paramétert a következőre:
"storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }
Itt azokat az értékeket listázza, amelyek ennél a paraméternél engedélyezettek lesznek. Ha a sablont nem engedélyezett értékkel futtatják, akkor az üzembe helyezés sikertelen lesz.
Adjon hozzá egy megjegyzést ehhez a paraméterhez.
Az ARM-sablonok támogatják a
//
és/* */
formátumú megjegyzéseket.Frissítse a resources paramétert a
storageSKU
paraméter használatához. A Visual Studio Code-ban az IntelliSense előnyeit kihasználva ezt könnyebben megteheti."sku": { "name": "[parameters('storageSKU')]" }
A teljes fájl a következőképpen fog kinézni:
{ "$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": [ { "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]", "tier": "Standard" } } ], "outputs": {} }
Mentse a fájlt.
Az ARM-sablon üzembe helyezése
Itt egy, az engedélyezett listában szereplő paraméterrel storageSKU
fogja sikeresen üzembe helyezni a telepítést. Ezután megpróbálhatja üzembe helyezni a sablont egy storageSKU
olyan paraméterrel, amely nem szerepel az engedélyezett listában. A második üzembe helyezés a várt módon sikertelen lesz.
A sablon üzembe helyezéséhez futtassa az alábbi parancsot. Adjon meg egy egyedi nevet a
storageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.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árja meg az üzembe helyezés befejezését. Ez az üzembe helyezés a várt módon sikeres lesz. Az engedélyezett értékek megakadályozzák, hogy a sablon felhasználói olyan paraméterértékeket adjanak át, amelyek nem működnek az erőforráshoz. Lássuk, mi történik, ha érvénytelen termékváltozatot ad meg.
A következő parancsok futtatásával üzembe helyezheti a sablont egy olyan paraméterrel, amely nem engedélyezett. Itt a
storageSKU
paramétert a Basic értékre módosította. Adjon meg egy egyedi nevet astorageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.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}
Az üzembe helyezés sikertelen lesz. Figyelje meg a hibaüzenetet.
A sablon üzembe helyezéséhez futtassa az alábbi parancsot. Adjon meg egy egyedi nevet a
storageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_GRS
Várja meg az üzembe helyezés befejezését. Ez az üzembe helyezés a várt módon sikeres lesz. Az engedélyezett értékek megakadályozzák, hogy a sablon felhasználói olyan paraméterértékeket adjanak át, amelyek nem működnek az erőforráshoz. Lássuk, mi történik, ha érvénytelen termékváltozatot ad meg.
A következő parancsok futtatásával üzembe helyezheti a sablont egy olyan paraméterrel, amely nem engedélyezett. Itt a
storageSKU
paramétert a Basic értékre módosította. Adjon meg egy egyedi nevet astorageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Basic
Az üzembe helyezés sikertelen lesz. Figyelje meg a hibaüzenetet.
Kimenet hozzáadása az ARM-sablonhoz
Itt hozzáadja az outputs
ARM-sablon szakaszához a tárfiók-erőforrás végpontjainak kimenetét.
A Visual Studio Code azuredeploy.json fájljában helyezze a kurzort a kapcsos zárójelekbe a kimeneti attribútumban
"outputs":{},
.Nyomja le az Enter billentyűt, majd lépjen ki. Megjelenik a kapcsolódó kódrészletek listája. Válassza ki az új kimenetet. Ezzel egy általános kimenetet ad hozzá a sablonhoz. Ez így néz ki:
"outputs": { "output1": { "type": "string", "value": "value" }
Módosítsa a "output1" értékét "storageEndpoint" értékre, majd módosítsa az értéket "object" értékre
type
. Módosítsa a következő értékrevalue
: "[reference(parameters('storageName')).primaryEndpoints]". Ez a kifejezés az előző leckében leírt kifejezés, amely lekéri a végpontadatokat. Mivel az objektum típusként van megadva, az JSON formátumban adja vissza az objektumot."outputs": { "storageEndpoint": { "type": "object", "value": "[reference(parameters('storageName')).primaryEndpoints]" }
Mentse a fájlt.
Az ARM-sablon üzembe helyezése kimenettel
Itt üzembe helyezi a sablont, és JSON-ként látja a végpontok kimenetét. Meg kell adnia egy egyedi nevet a storageName
paraméterhez. Ne feledje, hogy a névnek az Azure-ban egyedinek kell lennie. Használhatja a legutóbbi szakaszban létrehozott egyedi nevet. Ebben az esetben az Azure frissíti az erőforrást ahelyett, hogy újat hozna létre.
A sablon üzembe helyezéséhez futtassa az alábbi parancsot. A {your-unique-name} sztringet egy egyedi, Ön által ismert sztringre cserélje le.
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}
Figyelje meg a kimenetet.
A sablon üzembe helyezéséhez futtassa az alábbi parancsot. A {your-unique-name} sztringet egy egyedi, Ön által ismert sztringre cserélje le.
$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addOutputs-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_LRS
Figyelje meg a kimenetet.
A kimenettel rendelkező üzemelő példány ellenőrzése
Az Azure Portalon lépjen az addOutputs üzembe helyezéséhez. Itt megtalálhatja a kimenetet is.