Benutzerdefinierte Funktionen in Bicep
In Ihrer Bicep-Datei können Sie Ihre eigenen Funktionen erstellen. Diese Funktionen stehen dann zur Verwendung in Ihren Bicep-Dateien zur Verfügung. Benutzerdefinierte Funktionen sind von den standardmäßigen Bicep-Funktionen getrennt, die automatisch in der Bicep-Datei verfügbar sind. Erstellen Sie eigene Funktionen, wenn Sie über komplizierte Ausdrücke verfügen, die in Ihren Bicep-Dateien wiederholt verwendet werden.
Um diese Funktion nutzen zu können, ist Bicep CLI Version 0.26.X oder höher erforderlich.
Begrenzungen
Beim Definieren einer benutzerdefinierten Funktion gelten einige Einschränkungen:
- Die Funktion kann nicht auf Variablen zugreifen.
- Die Funktion kann nur Parameter verwenden, die in der Funktion definiert sind.
- Die Funktion kann nicht die reference-Funktion oder eine der list-Funktionen verwenden.
- Für die Parameter der Funktion können keine Standardwerte verwendet werden.
Definieren der Funktion
Verwenden Sie die func
-Anweisung, um benutzerdefinierte Funktionen zu definieren.
func <user-defined-function-name> (<argument-name> <data-type>, <argument-name> <data-type>, ...) <function-data-type> => <expression>
Beispiele
Die folgenden Beispiele zeigen, wie Sie benutzerdefinierte Funktionen definieren und verwenden:
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')
Die Ausgaben aus den vorherigen Beispielen sind:
Name | type | Wert |
---|---|---|
azureUrl | String | https://microsoft.com/azure |
greetingArray | Array | ["Hi Evie!","Hi Casper!"] |
greetingObject | Object | {"hello":"Hi John!"} |
nameArray | Array | ["John"] |
addNameArray | Array | ["Mary","Bob","John"] |
Mit Bicep CLI Version 0.23.X oder höher haben Sie die Flexibilität, eine benutzerdefinierte Funktion innerhalb einer anderen benutzerdefinierten Funktion aufzurufen. Im vorangegangenen Beispiel können Sie mit der Funktionsdefinition von sayHelloString
die Funktion sayHelloObject
wie folgt umdefinieren:
func sayHelloObject(name string) object => {
hello: sayHelloString(name)
}
Benutzerdefinierte Funktionen unterstützen die Verwendung benutzerdefinierter Datentypen. Beispiel:
@minValue(0)
type positiveInt = int
func typedArg(input string[]) positiveInt => length(input)
param inArray array = [
'Bicep'
'ARM'
'Terraform'
]
output elements positiveInt = typedArg(inArray)
Die Ausgabe aus dem vorherigen Beispiel lautet wie folgt:
Name | type | Wert |
---|---|---|
Elemente | positivInt | 3 |
Nächste Schritte
- Weitere Informationen zur Struktur und Syntax einer Bicep-Datei finden Sie unter Verstehen der Struktur und Syntax von Bicep-Dateien.
- Eine Liste der verfügbaren Bicep-Funktionen finden Sie unter Bicep-Funktionen.