Az Azure Resource Manager-sablon rugalmasabbá tétele sablonfüggvényekkel

Befejeződött

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 az concat, é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 és last.
  • Az összehasonlító függvények a sablonokon belüli összehasonlításokhoz használhatók. Például: equals és greater.
  • A dátumfüggvények dátumokkal végzett munkára alkalmasak. Például: utcNow és dateTimeAdd.
  • 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 és parameters.
  • A logikai függvények logikai feltételekkel végzett munkához használhatóak. Például: if és not.
  • A numerikus függvények egész számokkal végzett munkára alkalmasak. Például: max és mod.
  • Az objektumfüggvények objektumok kezeléséhez használhatók. Például: contains és length.
  • Az erőforrásfüggvények erőforrásértékek lekérésére szolgálnak. Például: resourceGroup és subscription.
  • A sztringfüggvények a sztringekkel való munkára használhatók. Például: length és startsWith.

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ő:

Picture of a string created by concatenating the word Storage with a 13-character hash that contains both uppercase and lowercase letters.

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:

Picture of a string created by concatenating the word Storage with a 13-character hash, and then converting all letters to lowercase.