Felhasználó által definiált függvények AZ ARM-sablonban
A sablonon belül létrehozhatja saját függvényeit. Ezek a függvények a sablonban használhatók. A felhasználó által definiált függvények elkülönülnek a sablonban automatikusan elérhető szabványos sablonfüggvényektől . Hozzon létre saját függvényeket, ha bonyolult kifejezésekkel rendelkezik, amelyeket a sablonban többször is használ.
Ez a cikk bemutatja, hogyan vehet fel felhasználó által definiált függvényeket az Azure Resource Manager-sablonba (ARM-sablon).
A függvény definiálása
A függvényeknek névtérértékre van szükségük a sablonfüggvényekkel való elnevezési ütközések elkerülése érdekében. Az alábbi példa egy függvényt mutat be, amely egyedi nevet ad vissza:
"functions": [
{
"namespace": "contoso",
"members": {
"uniqueName": {
"parameters": [
{
"name": "namePrefix",
"type": "string"
}
],
"output": {
"type": "string",
"value": "[concat(toLower(parameters('namePrefix')), uniqueString(resourceGroup().id))]"
}
}
}
}
],
A függvény használata
Az alábbi példa egy felhasználó által definiált függvényt tartalmazó sablont mutat be egy tárfiók egyedi nevének lekéréséhez. A sablon rendelkezik egy nevű paraméterrel storageNamePrefix
, amelyet paraméterként ad át a függvénynek.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageNamePrefix": {
"type": "string",
"maxLength": 11
}
},
"functions": [
{
"namespace": "contoso",
"members": {
"uniqueName": {
"parameters": [
{
"name": "namePrefix",
"type": "string"
}
],
"output": {
"type": "string",
"value": "[concat(toLower(parameters('namePrefix')), uniqueString(resourceGroup().id))]"
}
}
}
}
],
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[contoso.uniqueName(parameters('storageNamePrefix'))]",
"location": "South Central US",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Az üzembe helyezés során a storageNamePrefix
paraméter a függvénynek lesz átadva:
- A sablon egy nevű
storageNamePrefix
paramétert definiál. - A függvény azért használatos
namePrefix
, mert csak a függvényben definiált paramétereket használhatja. További információ: Korlátozások. - A sablon szakaszában
resources
azname
elem a függvényt használja, és átadja azstorageNamePrefix
értéket a függvényneknamePrefix
.
Korlátozások
Felhasználói függvény definiálásakor bizonyos korlátozások vannak érvényben:
- A függvény nem fér hozzá a változókhoz.
- A függvény csak a függvényben definiált paramétereket használhatja. Ha a paraméterfüggvényt egy felhasználó által definiált függvényben használja, az adott függvény paramétereire korlátozódik.
- A függvény nem tud más felhasználó által definiált függvényeket meghívni.
- A függvény nem használhatja a referenciafüggvényt vagy a listafüggvényeket.
- A függvény paraméterei nem tartalmazhatnak alapértelmezett értékeket.
Következő lépések
- A felhasználó által definiált függvények elérhető tulajdonságairól az ARM-sablonok szerkezetének és szintaxisának ismertetése című témakörben olvashat.
- Az elérhető sablonfüggvények listáját lásd: ARM-sablonfüggvények.