Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 felhasználó által definiált függvények automatikusan engedélyezik a 2.0-s verziójú kódgenerálást.
A funkció használatához a Bicep CLI 0.26.X vagy újabb verziója szükséges.
Korlátozások
A felhasználói függvények definiálásakor bizonyos korlátozások vonatkoznak:
- 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.
Függvények definiálása
Az utasítás használatával func
definiálhat felhasználó által definiált függvényeket.
@<decorator>(<argument>)
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 |
Dekorátorok használata
A dekorátorok formátuma @expression
a függvénydeklarációk fölé kerül. Az alábbi táblázat a függvényekhez elérhető dekorátorokat mutatja be.
Lakberendező | Argumentum | Leírás |
---|---|---|
leírás | húr | Adja meg a függvény leírását. |
kivitel | Nincs | Azt jelzi, hogy a függvény egy másik Bicep-fájl által importálható. |
metaadatok | object | A függvényre alkalmazandó egyéni tulajdonságok. Olyan leírástulajdonságokat is tartalmazhat, amelyek egyenértékűek a leírás dekorátorával. |
A dekorátorok a sys névtérben találhatók. Ha meg kell különböztetnie egy dekoratőrt egy másik, azonos nevű elemtől, akkor a dekoratőrt a következővel kell előtagolnia sys
: . Ha például a Bicep-fájl tartalmaz egy elnevezett description
változót, a leírás-dekorátor használatakor hozzá kell adnia a sys névteret.
Leírás
Magyarázat hozzáadásához adjon hozzá egy leírást a függvénydeklarációhoz. Példa:
@description('The say hello function.')
func sayHelloString(name string) string => 'Hi ${name}!'
Markdown formátumú szöveg használható a leírás szövegéhez.
Exportálás
A függvény más Bicep-fájlokkal való megosztására használható @export()
. További információ: Változók, típusok és függvények exportálása.
Metaadatok
Ha egyéni tulajdonságokat szeretne alkalmazni egy felhasználó által definiált függvényre, adjon hozzá egy metaadat-dekorátort. A metaadatokon belül definiáljon egy egyéni neveket és értékeket tartalmazó objektumot. A metaadatokhoz definiált objektum bármilyen nevet és típust tartalmazhat.
Ezzel a dekorátorsal nyomon követheti a függvény azon információinak nyomon követését, amelyeket nem érdemes hozzáadni a leíráshoz.
@description('Configuration values that are applied when the application starts.')
@metadata({
source: 'database'
contact: 'Web team'
})
type settings object
Ha egy dekoratőrnek @metadata()
olyan tulajdonságot ad meg, amely ütközik egy másik dekoratorral, az a dekorátor mindig elsőbbséget élvez a @metadata()
dekorátor minden tulajdonságával szemben. Az értéken belüli @metadata()
ütköző tulajdonság tehát redundáns, és lecserélődik. További információ: Nem ütköző metaadatok.
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.