Funkce pole pro Bicep
Tento článek popisuje funkce Bicep pro práci s poli. Funkce lambda pro práci s poli najdete tady.
array
array(convertToArray)
Převede hodnotu na pole.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
convertToArray | Yes | int, string, array nebo object | Hodnota, která se má převést na pole. |
Vrácená hodnota
Pole.
Příklad
Následující příklad ukazuje, jak používat maticovou funkci s různými typy.
param intToConvert int = 1
param stringToConvert string = 'efgh'
param objectToConvert object = {
'a': 'b'
'c': 'd'
}
output intOutput array = array(intToConvert)
output stringOutput array = array(stringToConvert)
output objectOutput array = array(objectToConvert)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
intOutput | Pole | [1] |
stringOutput | Pole | ["efgh"] |
objectOutput | Pole | [{"a": "b", "c": "d"}] |
concat
concat(arg1, arg2, arg3, ...)
Kombinuje více polí a vrací zřetězenou matici.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | array | První pole pro zřetězení. |
více argumentů | No | array | Více polí v sekvenčním pořadí pro zřetězení |
Tato funkce přebírá libovolný počet polí a kombinuje je.
Vrácená hodnota
Pole zřetězených hodnot.
Příklad
Následující příklad ukazuje, jak kombinovat dvě pole.
param firstArray array = [
'1-1'
'1-2'
'1-3'
]
param secondArray array = [
'2-1'
'2-2'
'2-3'
]
output return array = concat(firstArray, secondArray)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
return | Pole | ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"] |
obsahuje
contains(container, itemToFind)
Kontroluje, jestli pole obsahuje hodnotu, objekt obsahuje klíč nebo řetězec obsahuje podřetězce. Porovnání řetězců je citlivé na malá a velká písmena. Při testování, zda objekt obsahuje klíč, je však porovnání nerozlišující malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
kontejner | Yes | pole, objekt nebo řetězec | Hodnota, která obsahuje hodnotu, která se má najít. |
itemToFind | Yes | řetězec nebo int | Hodnota, kterou chcete najít. |
Vrácená hodnota
True , pokud je položka nalezena; jinak nepravda.
Příklad
Následující příklad ukazuje, jak používat obsahuje různé typy:
param stringToTest string = 'OneTwoThree'
param objectToTest object = {
'one': 'a'
'two': 'b'
'three': 'c'
}
param arrayToTest array = [
'one'
'two'
'three'
]
output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
stringTrue | Logická hodnota | Ano |
stringFalse | Logická hodnota | Ne |
objectTrue | Logická hodnota | Ano |
objectFalse | Logická hodnota | Ne |
arrayTrue | Logická hodnota | Ano |
arrayFalse | Logická hodnota | Ne |
empty
empty(itemToTest)
Určuje, jestli je pole, objekt nebo řetězec prázdné.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
itemToTest | Yes | pole, objekt nebo řetězec | Hodnota, která se má zkontrolovat, jestli je prázdná. |
Vrácená hodnota
Vrátí hodnotu True , pokud je hodnota prázdná; jinak nepravda.
Příklad
Následující příklad zkontroluje, jestli je pole, objekt a řetězec prázdné.
param testArray array = []
param testObject object = {}
param testString string = ''
output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayEmpty | Logická hodnota | Ano |
objectEmpty | Logická hodnota | Ano |
stringEmpty | Logická hodnota | Ano |
Příklady rychlého startu
Následující příklad se extrahuje ze šablony rychlého startu, SQL Server virtuální počítač s nastavením úložiště optimalizovaným pro výkon:
@description('Array containing DNS Servers')
param dnsServers array = []
...
resource vnet 'Microsoft.Network/virtualNetworks@2021-02-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: vnetAddressSpace
}
dhcpOptions: empty(dnsServers) ? null : {
dnsServers: dnsServers
}
...
}
}
V podmíněném výrazu se prázdná funkce používá ke kontrole, jestli je pole dnsServers prázdné pole.
První
first(arg1)
Vrátí první prvek pole nebo první znak řetězce.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole nebo řetězec | Hodnota pro načtení prvního prvku nebo znaku. |
Vrácená hodnota
Typ (řetězec, int, matice nebo objekt) prvního prvku v poli nebo první znak řetězce.
Příklad
Následující příklad ukazuje, jak použít první funkci s polem a řetězcem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Řetězec | jeden |
stringOutput | Řetězec | O |
Zploštit
flatten(arrayToFlatten)
Vezme pole polí a vrátí pole dílčích prvků v původním pořadí. Podarray jsou zploštěny pouze jednou, ne rekurzivně.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arrayToFlattern | Yes | array | Pole dílčích polí, které se mají zploštět. |
Vrácená hodnota
Pole
Příklad
Následující příklad ukazuje použití zploštěné funkce.
param arrayToTest array = [
['one', 'two']
['three']
['four', 'five']
]
output arrayOutput array = flatten(arrayToTest)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | array | ['one', 'two', 'three', 'four', 'five'] |
Indexof
indexOf(arrayToSearch, itemToFind)
Vrátí celé číslo pro index prvního výskytu položky v poli. Porovnání se rozlišují velká a malá písmena pro řetězce.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arrayToSearch | Yes | array | Pole, které se má použít k vyhledání indexu prohledáné položky. |
itemToFind | Yes | int, string, array nebo object | Položka, která se má najít v poli. |
Vrácená hodnota
Celé číslo představující první index položky v poli. Index je založený na nule. Pokud položka nebyla nalezena, vrátí se hodnota -1.
Příklady
Následující příklad ukazuje, jak používat funkce indexOf a lastIndexOf:
var names = [
'one'
'two'
'three'
]
var numbers = [
4
5
6
]
var collection = [
names
numbers
]
var duplicates = [
1
2
3
1
]
output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')
output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')
output index5 int = indexOf(collection, numbers)
output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)
Výstup z předchozího příkladu je:
Název | Typ | Hodnota |
---|---|---|
index1 | int | 1 |
index2 | int | 0 |
index3 | int | 0 |
index4 | int | 2 |
index5 | int | 1 |
index6 | int | 0 |
index7 | int | 3 |
notFoundIndex1 | int | -1 |
notFoundIndex2 | int | -1 |
Průsečíku
intersection(arg1, arg2, arg3, ...)
Vrátí jedno pole nebo objekt s běžnými prvky z parametrů.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole nebo objekt | První hodnota, která se má použít k vyhledání společných prvků. |
arg2 | Yes | pole nebo objekt | Druhá hodnota, která se má použít k vyhledání společných prvků. |
více argumentů | No | pole nebo objekt | Další hodnoty, které se mají použít k vyhledání běžných prvků |
Vrácená hodnota
Pole nebo objekt se společnými prvky. Pořadí prvků je určeno prvním parametrem pole.
Příklad
Následující příklad ukazuje, jak použít průnik s poli a objekty:
param firstObject object = {
'one': 'a'
'two': 'b'
'three': 'c'
}
param secondObject object = {
'one': 'a'
'two': 'z'
'three': 'c'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'two'
'three'
]
output objectOutput object = intersection(firstObject, secondObject)
output arrayOutput array = intersection(firstArray, secondArray)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
objectOutput | Objekt | {"one": "a", "three": "c"} |
arrayOutput | Pole | ["dva", "tři"] |
První parametr pole určuje pořadí protínaných prvků. Následující příklad ukazuje, jak pořadí vrácených prvků je založeno na tom, které pole je první.
var array1 = [
1
2
3
4
]
var array2 = [
3
2
1
]
var array3 = [
4
1
3
2
]
output commonUp array = intersection(array1, array2, array3)
output commonDown array = intersection(array2, array3, array1)
Výstup z předchozího příkladu je:
Název | Typ | Hodnota |
---|---|---|
commonUp | array | [1, 2, 3] |
commonDown | array | [3, 2, 1] |
poslední
last(arg1)
Vrátí poslední prvek pole nebo poslední znak řetězce.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole nebo řetězec | Hodnota pro načtení posledního prvku nebo znaku. |
Vrácená hodnota
Typ (řetězec, int, pole nebo objekt) posledního prvku v poli nebo poslední znak řetězce.
Příklad
Následující příklad ukazuje, jak použít poslední funkci s polem a řetězcem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two three')
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Řetězec | Tři |
stringOutput | Řetězec | e |
Lastindexof
lastIndexOf(arrayToSearch, itemToFind)
Vrátí celé číslo pro index posledního výskytu položky v poli. Porovnání rozlišuje velká a malá písmena pro řetězce.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arrayToSearch | Yes | array | Pole, které se má použít k vyhledání indexu prohledáné položky. |
itemToFind | Yes | int, string, array nebo object | Položka, která se má najít v poli. |
Vrácená hodnota
Celé číslo představující poslední index položky v poli. Index je založený na nule. Pokud položka nebyla nalezena, vrátí se hodnota -1.
Příklady
Následující příklad ukazuje, jak používat funkce indexOf a lastIndexOf:
var names = [
'one'
'two'
'three'
]
var numbers = [
4
5
6
]
var collection = [
names
numbers
]
var duplicates = [
1
2
3
1
]
output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')
output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')
output index5 int = indexOf(collection, numbers)
output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)
Výstup z předchozího příkladu je:
Název | Typ | Hodnota |
---|---|---|
index1 | int | 1 |
index2 | int | 0 |
index3 | int | 0 |
index4 | int | 2 |
index5 | int | 1 |
index6 | int | 0 |
index7 | int | 3 |
notFoundIndex1 | int | -1 |
notFoundIndex2 | int | -1 |
length
length(arg1)
Vrátí počet prvků v matici, znaky v řetězci nebo vlastnosti kořenové úrovně v objektu.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole, řetězec nebo objekt | Pole, které se má použít pro získání počtu prvků, řetězec, který se má použít pro získání počtu znaků, nebo objekt, který se má použít pro získání počtu vlastností kořenové úrovně. |
Vrácená hodnota
Int.
Příklad
Následující příklad ukazuje, jak použít délku s polem a řetězcem:
param arrayToTest array = [
'one'
'two'
'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
'propA': 'one'
'propB': 'two'
'propC': 'three'
'propD': {
'propD-1': 'sub'
'propD-2': 'sub'
}
}
output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
Příklady rychlého startu
Následující příklad se extrahuje ze šablony pro rychlý start a nasadí API Management v externí virtuální síti s veřejnou IP adresou:
@description('Numbers for availability zones, for example, 1,2,3.')
param availabilityZones array = [
'1'
'2'
]
resource exampleApim 'Microsoft.ApiManagement/service@2021-08-01' = {
name: apiManagementName
location: location
sku: {
name: sku
capacity: skuCount
}
zones: ((length(availabilityZones) == 0) ? null : availabilityZones)
...
}
Ve podmíněném výrazulength
funkce zkontroluje délku pole availabilityZones.
Další příklady najdete v těchto souborech Bicep pro rychlý start:
- Zálohování Resource Manager virtuálních počítačů pomocí trezoru služby Recovery Services
- Nasazení API Management do Zóny dostupnosti
- Vytvoření brány firewall a brány firewall s využitím pravidel a skupin IP adres
- Vytvoření nastavení sandboxu Azure Firewall se zónami
max
max(arg1)
Vrátí maximální hodnotu z pole celých čísel nebo seznamu celých čísel oddělených čárkami.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole celých čísel nebo seznam celých čísel oddělených čárkami | Kolekce pro získání maximální hodnoty. |
Vrácená hodnota
Hodnota int představující maximální hodnotu.
Příklad
Následující příklad ukazuje, jak použít maximum s polem a seznamem celých čísel:
param arrayToTest array = [
0
3
2
5
4
]
output arrayOutput int = max(arrayToTest)
output intOutput int = max(0,3,2,5,4)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Int | 5 |
intOutput | Int | 5 |
min
min(arg1)
Vrátí minimální hodnotu z pole celých čísel nebo seznamu celých čísel oddělených čárkami.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole celých čísel nebo seznam celých čísel oddělených čárkami | Kolekce pro získání minimální hodnoty. |
Vrácená hodnota
Int představující minimální hodnotu.
Příklad
Následující příklad ukazuje, jak použít min s polem a seznamem celých čísel:
param arrayToTest array = [
0
3
2
5
4
]
output arrayOutput int = min(arrayToTest)
output intOutput int = min(0,3,2,5,4)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Int | 0 |
intOutput | Int | 0 |
range
range(startIndex, count)
Vytvoří pole celých čísel z počátečního celého čísla a obsahující počet položek.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
Startindex | Yes | int | První celé číslo v poli. Součet startIndex a count nesmí být větší než 2147483647. |
count | Yes | int | Počet celých čísel v matici. Musí být nezáporné celé číslo až 1 0000. |
Vrácená hodnota
Pole celých čísel.
Příklad
Následující příklad ukazuje, jak používat funkci rozsahu:
param startingInt int = 5
param numberOfElements int = 3
output rangeOutput array = range(startingInt, numberOfElements)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
rangeOutput | Pole | [5, 6, 7] |
Příklady rychlého startu
Následující příklad se extrahuje ze šablony rychlého startu, ze dvou virtuálních počítačů ve virtuální síti – interní pravidla Load Balancer a pravidla nástroje pro vyrovnávání zatížení:
...
var numberOfInstances = 2
resource networkInterface 'Microsoft.Network/networkInterfaces@2021-05-01' = [for i in range(0, numberOfInstances): {
name: '${networkInterfaceName}${i}'
location: location
properties: {
...
}
}]
resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = [for i in range(0, numberOfInstances): {
name: '${vmNamePrefix}${i}'
location: location
properties: {
...
}
}]
Soubor Bicep vytvoří dva networkInterface a dva prostředky virtualMachine.
Další příklady najdete v těchto souborech Bicep pro rychlý start:
- Šablona více virtuálních počítačů se spravovaným diskem
- Vytvoření virtuálního počítače s několika prázdnými datovými disky StandardSSD_LRS
- Vytvoření brány firewall a brány firewall s využitím pravidel a skupin IP adres
- Vytvoření Azure Firewall pomocí skupin IpGroups
- Vytvoření nastavení sandboxu Azure Firewall se zónami
- Vytvoření Azure Firewall s několika veřejnými IP adresami
- Vytvoření standardního nástroje pro vyrovnávání zatížení
- Příklad virtuálního počítače Azure Traffic Manageru
- Vytvoření automatizace zabezpečení pro konkrétní výstrahy
- SQL Server virtuální počítač s nastavením úložiště optimalizovaným pro výkon
- Vytvoření účtu úložiště s několika kontejnery objektů blob
- Vytvoření účtu úložiště s více sdílenými složkami
Přeskočit
skip(originalValue, numberToSkip)
Vrátí matici se všemi prvky za zadaným číslem v matici nebo vrátí řetězec se všemi znaky za zadaným číslem v řetězci.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
originalValue | Yes | pole nebo řetězec | Pole nebo řetězec, které se má použít pro přeskočení |
numberToSkip | Yes | int | Počet prvků nebo znaků, které chcete přeskočit. Pokud je tato hodnota 0 nebo menší, vrátí se všechny prvky nebo znaky v hodnotě. Pokud je větší než délka pole nebo řetězce, vrátí se prázdná matice nebo řetězec. |
Vrácená hodnota
Pole nebo řetězec.
Příklad
Následující příklad přeskočí zadaný počet prvků v poli a zadaný počet znaků v řetězci.
param testArray array = [
'one'
'two'
'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4
output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Pole | ["tři"] |
stringOutput | Řetězec | dvě tři |
take
take(originalValue, numberToTake)
Vrátí matici se zadaným počtem prvků od začátku pole nebo řetězce se zadaným počtem znaků od začátku řetězce.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
originalValue | Yes | pole nebo řetězec | Pole nebo řetězec, ze které mají být prvky odebrány. |
NumberToTake | Yes | int | Počet prvků nebo znaků, které se mají vzít. Pokud je tato hodnota 0 nebo menší, vrátí se prázdné pole nebo řetězec. Pokud je větší než délka daného pole nebo řetězce, vrátí se všechny prvky v poli nebo řetězci. |
Vrácená hodnota
Pole nebo řetězec.
Příklad
Následující příklad přebírá zadaný počet prvků z pole a znaky z řetězce.
param testArray array = [
'one'
'two'
'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2
output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
arrayOutput | Pole | ["jedna", "dvě"] |
stringOutput | Řetězec | on |
sjednocení
union(arg1, arg2, arg3, ...)
Vrátí jedno pole nebo objekt se všemi prvky z parametrů. U polí se duplicitní hodnoty zahrnou jednou. U objektů jsou duplicitní názvy vlastností zahrnuty pouze jednou.
Obor názvů: sys.
Parametry
Parametr | Povinné | Typ | Description |
---|---|---|---|
arg1 | Yes | pole nebo objekt | První hodnota, která se má použít pro spojování prvků. |
arg2 | Yes | pole nebo objekt | Druhá hodnota, která se má použít pro spojování prvků. |
více argumentů | No | pole nebo objekt | Další hodnoty, které se mají použít pro spojování prvků. |
Vrácená hodnota
Pole nebo objekt.
Poznámky
Funkce sjednocení používá posloupnost parametrů k určení pořadí a hodnot výsledku.
U polí funkce iteruje jednotlivé prvky v prvním parametru a přidá ji do výsledku, pokud ještě není k dispozici. Potom tento proces opakuje pro druhý parametr a další parametry. Pokud je hodnota již přítomna, zachová se její dřívější umístění v poli.
U objektů se do výsledku přidají názvy vlastností a hodnoty z prvního parametru. U pozdějších parametrů se do výsledku přidají všechny nové názvy. Pokud má pozdější parametr vlastnost se stejným názvem, tato hodnota přepíše existující hodnotu. Pořadí vlastností není zaručeno.
Příklad
Následující příklad ukazuje, jak použít sjednocení s poli a objekty:
param firstObject object = {
'one': 'a'
'two': 'b'
'three': 'c1'
}
param secondObject object = {
'three': 'c2'
'four': 'd'
'five': 'e'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'three'
'four'
'two'
]
output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)
Výstup z předchozího příkladu s výchozími hodnotami je:
Název | Typ | Hodnota |
---|---|---|
objectOutput | Objekt | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
arrayOutput | Pole | ["jedna", "dvě", "tři", "čtyři"] |
Další kroky
- Pokud chcete získat pole řetězcových hodnot oddělených hodnotou, podívejte se na rozdělení.