Értékek megadása paraméterfájlok használatával
Az előző egységekben a parancssorban adta meg a paraméterértékeket az üzembe helyezés létrehozásakor. Ez a módszer jól működik a Bicep-fájlok írása és tesztelése során, de nem működik jól, ha sok paramétert használ, vagy ha automatizálnia kell az üzembe helyezéseket. Ebben a leckében a paraméterértékek megadásának különböző módjait ismerheti meg.
Megjegyzés:
Az egység parancsai a fogalmakat szemléltetik. Még ne futtassa a parancsokat. Hamarosan gyakorolja, amit itt tanul.
Paraméterfájlok létrehozása
A paraméterfájlok megkönnyítik a paraméterértékek együttes megadását készletként. A paraméterfájlban megadhatja a Bicep-fájl paramétereinek értékeit. A paraméterfájlok a JavaScript Object Notation (JSON) nyelv használatával jönnek létre. A Bicep-sablon üzembe helyezésekor megadhat egy paraméterfájlt. Így néz ki egy paraméterfájl:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServicePlanInstanceCount": {
"value": 3
},
"appServicePlanSku": {
"value": {
"name": "P1v3",
"tier": "PremiumV3"
}
},
"cosmosDBAccountLocations": {
"value": [
{
"locationName": "australiaeast"
},
{
"locationName": "southcentralus"
},
{
"locationName": "westeurope"
}
]
}
}
}
Tekintsük meg részletesebben a paraméterfájl egyes részeit:
$schema
segít az Azure Resource Managernek megérteni, hogy ez a fájl paraméterfájl.contentVersion
egy tulajdonság, amellyel nyomon követheti a paraméterfájl jelentős változásait, ha szeretné. Általában az alapértelmezett értékre1.0.0.0
van állítva.- A
parameters
szakasz felsorolja az egyes paramétereket és a használni kívánt értéket. A paraméter értékét objektumként kell megadni. Az objektumnak van egy olyan tulajdonságavalue
, amely meghatározza a használni kívánt tényleges paraméterértéket.
Általában minden környezethez létre kell hoznia egy paraméterfájlt. Célszerű a környezet nevét a paraméterfájl nevében szerepeltetni. Lehet például egy main.parameters.dev.json nevű paraméterfájl a fejlesztési környezethez, és egy main.parameters.production.json nevű az éles környezethez.
Megjegyzés:
Győződjön meg arról, hogy csak a Bicep-sablonban található paraméterek értékeit adja meg. Amikor létrehoz egy üzembe helyezést, az Azure ellenőrzi a paramétereket, és hibaüzenetet ad, ha olyan paraméter értékét próbálta megadni, amely nem szerepel a Bicep-fájlban.
Paraméterfájlok használata az üzembe helyezéskor
Amikor új üzembe helyezést hoz létre a az deployment group create
parancs használatával, megadhatja a használni kívánt paraméterfájl nevét az --parameters
argumentummal:
az deployment group create \
--template-file main.bicep \
--parameters main.parameters.json
Amikor új üzembe helyezést hoz létre a New-AzResourceGroupDeployment
parancsmag használatával, megadhatja a használni kívánt paraméterfájl nevét az -TemplateParameterFile
argumentummal:
New-AzResourceGroupDeployment `
-TemplateFile main.bicep `
-TemplateParameterFile main.parameters.json
Paraméterértékek felülbírálása
Megismerhette a paraméterértékek megadásának három módját: az alapértelmezett értékeket, a parancssort és a paraméterfájlokat. Gyakori, hogy különböző megközelítéseket használunk ugyanazon paraméter különböző értékeinek megadásához. Ezt a megközelítést már látta, amikor alapértelmezett értékekkel dolgozott. Amikor létrehoz egy alapértelmezett értéket egy paraméterhez, de a parancssor használatával egy másik értéket ad meg, a parancssori érték elsőbbséget élvez. Nézzük meg, hogyan illeszkednek a paraméterfájlok ebbe a sorrendbe.
Láthatja, hogy a paraméterfájlok felülbírálják az alapértelmezett értékeket, a parancssori paraméterértékek pedig felülbírálják a paraméterfájlokat.
Nézzük meg, hogyan működik ez a megközelítés. Íme egy példa Bicep-fájl, amely három paramétert határoz meg, amelyek mindegyike alapértelmezett értékekkel rendelkezik:
param location string = resourceGroup().location
param appServicePlanInstanceCount int = 1
param appServicePlanSku object = {
name: 'F1'
tier: 'Free'
}
Tekintsünk meg egy paraméterfájlt, amely felülbírálja két paraméter értékét, de nem ad meg értéket a location
paraméterhez:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServicePlanInstanceCount": {
"value": 3
},
"appServicePlanSku": {
"value": {
"name": "P1v3",
"tier": "PremiumV3"
}
}
}
}
Az üzembe helyezés létrehozásakor felülbíráljuk a --parameters
argumentumot, de a felülbírálni kívánt értéket saját értékként adja hozzá:
az deployment group create \
--template-file main.bicep \
--parameters main.parameters.json \
appServicePlanInstanceCount=5
Az üzembe helyezés létrehozásakor felül kell bírálni az egyik paraméterértéket. A paraméter nevét úgy adja meg, mintha a parancsmag argumentuma lenne:
New-AzResourceGroupDeployment `
-TemplateFile main.bicep `
-TemplateParameterFile main.parameters.json `
-appServicePlanInstanceCount 5
Nézzük meg, mik lesznek az értékek.
Paraméter | Érték | Magyarázat |
---|---|---|
location |
Az erőforráscsoport helye. | A Bicep-fájl alapértelmezett értékként adja meg ezt a paramétert, és nincs felülírva. |
appServicePlanSku |
Olyan objektum, name amelynek tulajdonsága PremiumV3 a következőre P1v3 van állítva:tier |
A Bicep-fájl alapértelmezett értékét felülírja a paraméterfájl. |
appServicePlanInstanceCount |
5 |
Az üzembe helyezéskor megadott érték felülírja az alapértelmezett értéket és a paraméterfájl értékét. |
A paraméterértékek megadására szolgáló megközelítések keverékével elkerülheti, hogy sok helyen duplikálja a paraméterértékeket, miközben továbbra is rugalmasan felülbírálhatja a szükséges helyeket.