Felhasználó által definiált függvények a Bicepben
A Bicep-fájlban saját függvényeket hozhat létre. Ezek a függvények a Bicep-fájlokban használhatók. A felhasználó által definiált függvények eltérnek a Bicep-fájlokban automatikusan elérhető szokásos Bicep-függvényektől . Saját függvényeket hozhat létre, ha bonyolult kifejezésekkel rendelkezik, amelyeket a Bicep-fájlokban ismétlődően használnak.
A funkció használatához a Bicep CLI 0.26.X vagy újabb verziója szükséges.
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.
- 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.
A függvény definiálása
Az utasítás használatával func
definiálhat felhasználó által definiált függvényeket.
func <user-defined-function-name> (<argument-name> <data-type>, <argument-name> <data-type>, ...) <function-data-type> => <expression>
Példák
Az alábbi példák a felhasználó által definiált függvények definiálására és használatára mutatnak be példát:
func buildUrl(https bool, hostname string, path string) string => '${https ? 'https' : 'http'}://${hostname}${empty(path) ? '' : '/${path}'}'
func sayHelloString(name string) string => 'Hi ${name}!'
func sayHelloObject(name string) object => {
hello: 'Hi ${name}!'
}
func nameArray(name string) array => [
name
]
func addNameArray(name string) array => [
'Mary'
'Bob'
name
]
output azureUrl string = buildUrl(true, 'microsoft.com', 'azure')
output greetingArray array = map(['Evie', 'Casper'], name => sayHelloString(name))
output greetingObject object = sayHelloObject('John')
output nameArray array = nameArray('John')
output addNameArray array = addNameArray('John')
Az előző példák kimenetei a következők:
Név | Típus | Érték |
---|---|---|
azureUrl | Sztring | https://microsoft.com/azure |
greetingArray | Tömb | ["Hi Evie!","Hi Casper!"] |
greetingObject | Objektum | {"hello":"Hi John!"} |
nameArray | Tömb | ["János"] |
addNameArray | Tömb | ["Mary","Bob","John"] |
A Bicep CLI 0.23.X-es vagy újabb verziójával rugalmasan hívhat meg egy felhasználó által definiált függvényt egy felhasználó által definiált függvényen belül. Az előző példában a függvény definíciójával sayHelloString
újradefinitálhatja a függvényt a sayHelloObject
következő módon:
func sayHelloObject(name string) object => {
hello: sayHelloString(name)
}
A felhasználó által definiált függvények támogatják a felhasználó által definiált adattípusok használatát. Példa:
@minValue(0)
type positiveInt = int
func typedArg(input string[]) positiveInt => length(input)
param inArray array = [
'Bicep'
'ARM'
'Terraform'
]
output elements positiveInt = typedArg(inArray)
Az előző példa kimenete a következő:
Név | Típus | Érték |
---|---|---|
Elemek | positiveInt | 3 |
Következő lépések
- A Bicep-fájlok szerkezetének és szintaxisának megismeréséhez tekintse meg a Bicep-fájlok szerkezetét és szintaxisát.
- Az elérhető Bicep-függvények listáját a Bicep-függvények című témakörben találja.