Bicep'te kullanıcı tanımlı işlevler
Bicep dosyanızda kendi işlevlerinizi oluşturabilirsiniz. Bu işlevler Bicep dosyalarınızda kullanılabilir. Kullanıcı tanımlı işlevler, Bicep dosyalarınızda otomatik olarak kullanılabilen standart Bicep işlevlerinden ayrıdır. Bicep dosyalarınızda tekrar tekrar kullanılan karmaşık ifadeleriniz olduğunda kendi işlevlerinizi oluşturun.
Bu özelliği kullanmak için Bicep CLI sürüm 0.26.X veya üzeri gereklidir.
Sınırlamalar
Kullanıcı işlevi tanımlarken bazı kısıtlamalar vardır:
- İşlev değişkenlere erişemiyor.
- İşlev yalnızca işlevde tanımlanan parametreleri kullanabilir.
- İşlev, başvuru işlevini veya liste işlevlerini kullanamaz.
- İşlev parametreleri varsayılan değerlere sahip olamaz.
İşlevi tanımlama
Kullanıcı tanımlı işlevleri tanımlamak için deyimini func
kullanın.
func <user-defined-function-name> (<argument-name> <data-type>, <argument-name> <data-type>, ...) <function-data-type> => <expression>
Örnekler
Aşağıdaki örneklerde kullanıcı tanımlı işlevlerin nasıl tanımlanacağı ve kullanılacağı gösterilmektedir:
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')
Önceki örneklerden alınan çıkışlar şunlardır:
Adı | Tür | Değer |
---|---|---|
azureUrl | String | https://microsoft.com/azure |
greetingArray | Dizi | ["Merhaba Evie!","Merhaba Casper!"] |
greetingObject | Object | {"hello":"Merhaba John!"} |
nameArray | Dizi | ["John"] |
addNameArray | Dizi | ["Mary","Bob","John"] |
Bicep CLI sürüm 0.23.X veya üzeriyle, kullanıcı tanımlı bir işlev içinde başka bir kullanıcı tanımlı işlevi çağırma esnekliğine sahipsiniz. Yukarıdaki örnekte işlevinin sayHelloString
tanımıyla işlevi şu şekilde yeniden tanımlayabilirsiniz sayHelloObject
:
func sayHelloObject(name string) object => {
hello: sayHelloString(name)
}
Kullanıcı tanımlı işlevler, kullanıcı tanımlı veri türlerinin kullanılmasını destekler. Örneğin:
@minValue(0)
type positiveInt = int
func typedArg(input string[]) positiveInt => length(input)
param inArray array = [
'Bicep'
'ARM'
'Terraform'
]
output elements positiveInt = typedArg(inArray)
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
öğeler | positiveInt | 3 |
Sonraki adımlar
- Bicep dosya yapısı ve söz dizimi hakkında bilgi edinmek için bkz . Bicep dosyalarının yapısını ve söz dizimini anlama.
- Kullanılabilir Bicep işlevlerinin listesi için bkz . Bicep işlevleri.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin