Az Azure Resource Manager-sablon rugalmasabbá tétele sablonfüggvényekkel
Ebben a forgatókönyvben Ön minél zökkenőmentesebbé szeretné tenni Azure Resource Manager- (ARM-) sablonjának üzembe helyezését különböző környezetekben. Az egyik kihívás egyedi nevet adni az Azure-tárfióknak.
Úgy dönt, hogy a probléma megoldása érdekében létrehoz egy kifejezést ARM-sablonfüggvények használatával.
Mik azok az ARM-sablonfüggvények?
Az ARM-sablonfüggvények az üzembe helyezés során az értékek dinamikus lekérésével növelik az ARM-sablonok rugalmasságát.
A függvények működésének megértéséhez először a kifejezések fogalmával kell megismerkednie. A kifejezések olyan értékek, amelyeket a rendszer a sablon üzembe helyezésekor kiértékel. Zárójelekkel []
kezdődnek és végződnek, és sztringet, egész számot, logikai értéket, tömböt vagy objektumot adnak vissza.
A képzési terv előző moduljában már dolgozott kifejezésekkel a Resource Manager-sablonban. Használta például a következőket:
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
A kifejezés a defaultValue:
attribútum értéke. Figyelje meg, hogy ez a kifejezés tartalmazza az ARM-sablonfüggvénytresourceGroup()
. Ez a függvény annak az erőforráscsoportnak az adatait adja vissza, amelyre a sablont telepíti. A .location
egy tulajdonságot kér le a függvény által visszaadott objektumból. A függvényekkel dinamikusan hozhatja létre azokat az értékeket, amelyekre szüksége van.
Hogyan használhatom az ARM-sablonfüggvényeket?
A függvények használatakor néhány szabályt be kell tartani:
Használjon szimpla idézőjelet, ha egy sztring értékét szeretné átadni egy függvénynek. Példa:
concat('storage',uniqueString(resourceGroup().id))
A függvény azconcat
, és az a sztring, amelyet a függvénynek'storage'
ad át.Ha konstansértékeket szeretne használni a sablonfüggvényben, használjon feloldójeleket. A feloldójelek eltérőek attól függően, hogy mire szeretné használni őket.
Ha egy tulajdonságot null értékre szeretne beállítani, használja a következőket:
null
vagy[json('null')]
. A JSON-függvény egy üres objektumot ad vissza, ha a null paramétert adja meg."stringValue": null, "objectValue": "[json('null')]"
A Resource Manager számos ARM-sablonfüggvényt kínál. A függvények csoportokban vannak felsorolva a típusuk szerint:
- A tömbfüggvények tömbök használatára szolgálnak. Például:
first
éslast
. - Az összehasonlító függvények a sablonokon belüli összehasonlításokhoz használhatók. Például:
equals
ésgreater
. - A dátumfüggvények dátumokkal végzett munkára alkalmasak. Például:
utcNow
ésdateTimeAdd
. - Az üzembehelyezésiérték-függvények a sablon szakaszaiból értékek lekéréséhez, valamint az üzemelő példánnyal kapcsolatos értékek lekéréséhez használhatók. Például:
environment
ésparameters
. - A logikai függvények logikai feltételekkel végzett munkához használhatóak. Például:
if
ésnot
. - A numerikus függvények egész számokkal végzett munkára alkalmasak. Például:
max
ésmod
. - Az objektumfüggvények objektumok kezeléséhez használhatók. Például:
contains
éslength
. - Az erőforrásfüggvények erőforrásértékek lekérésére szolgálnak. Például:
resourceGroup
éssubscription
. - A sztringfüggvények a sztringekkel való munkára használhatók. Például:
length
ésstartsWith
.
Hogyan lehet egyszerre több függvényt használni egy kifejezésben?
Több függvény együttes használatával létrehozhat saját kifejezéseket. Ebben a forgatókönyvben létre kell hoznia egy kifejezést, amely erőforráscsoportonként egy egyedi nevet hoz létre, és ehhez előtagként egy bemenetet használ fel, amelyhez az erőforráscsoport-azonosító kivonatát adja hozzá. A kifejezés eredményeként olyan Azure-tárfióknevek jönnek létre, mint a dev2hu6fktr577wh
vagy a staging5his8hgr67tt5
. A sztringérték létrehozásához négy függvényt használhat. Példa:
"[toLower(concat('Storage',uniqueString(resourceGroup().id)))]"
Nézzük meg részletesebben ezt a kifejezést.
Az összefűzéstől kezdve ez a függvény tetszőleges számú argumentumot vesz igénybe, és a paraméterekhez sztringeket vagy tömböket is elfogadhat. Itt egy szövegkonstanst használ ("Storage"
), amelyet összefűz egy másik függvény, a uniqueString eredményével. A uniqueString
függvény egy determinisztikus kivonatsztringet hoz létre a paraméterek alapján. Ebben a kifejezésben létrehozza az aktuális erőforráscsoport-azonosító kivonatát egy másik, resourceGroup nevű függvény használatával.
Az eddig tárgyalt kimenet a következő:
Az elnevezési konvencióknak megfelelően ebben a sztringben csak kisbetűk használhatóak. Itt hozzáadja a toLower függvényt külső függvényként.
Az eredményül kapott sztring a következőképpen néz ki: