Fonctions définies par l’utilisateur dans Bicep
Vous pouvez créer vos propres fonctions à l’intérieur du fichier Bicep. Ces fonctions peuvent être utilisées dans vos fichiers Bicep. Les fonctions définies par l’utilisateur sont distinctes des fonctions Bicep standard qui sont automatiquement disponibles dans vos fichiers Bicep. Créez vos propres fonctions lorsque vous avez des expressions complexes utilisées à plusieurs reprises dans vos fichiers Bicep.
Bicep CLI version 0.26.X ou ultérieure est nécessaire pour utiliser cette fonctionnalité.
Limites
La définition d’une fonction utilisateur est soumise à certaines restrictions :
- La fonction ne peut pas accéder aux variables.
- La fonction ne peut utiliser que des paramètres définis dans l’autre fonction.
- La fonction ne peut pas utiliser la fonction reference ni aucune des fonctions list.
- Les paramètres de la fonction ne peuvent pas avoir de valeur par défaut.
Définir la fonction
Utilisez l’instruction func
pour définir des fonctions définies par l’utilisateur.
func <user-defined-function-name> (<argument-name> <data-type>, <argument-name> <data-type>, ...) <function-data-type> => <expression>
Exemples
Les exemples suivants montrent comment définir et utiliser des fonctions définies par l’utilisateur :
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')
Les sorties des exemples précédents sont :
Nom | Type | Valeur |
---|---|---|
azureUrl | String | https://microsoft.com/azure |
greetingArray | Tableau | ["Hi Evie!","Hi Casper!"] |
greetingObject | Objet | {"hello":"Hi John!"} |
nameArray | Tableau | ["John"] |
addNameArray | Tableau | ["Mary","Bob","John"] |
Avec Bicep CLI version 0.23.X ou ultérieure, vous avez la possibilité d’appeler une autre fonction définie par l’utilisateur dans une fonction définie par l’utilisateur. Dans l’exemple précédent, avec la définition de fonction de sayHelloString
, vous pouvez redéfinir la fonction sayHelloObject
comme suit :
func sayHelloObject(name string) object => {
hello: sayHelloString(name)
}
Les fonctions définies par l’utilisateur prennent en charge l’utilisation de types de données définis par l’utilisateur. Par exemple :
@minValue(0)
type positiveInt = int
func typedArg(input string[]) positiveInt => length(input)
param inArray array = [
'Bicep'
'ARM'
'Terraform'
]
output elements positiveInt = typedArg(inArray)
La sortie de l’exemple précédent est :
Nom | Type | Valeur |
---|---|---|
éléments | positiveInt | 3 |
Étapes suivantes
- Pour plus d’informations sur la structure et la syntaxe d’un fichier Bicep, consultez Comprendre la structure et la syntaxe des fichiers Bicep.
- Pour obtenir la liste des fonctions Bicep disponibles, consultez Fonctions Bicep.