Operátor rozložení Bicep
Operátor šíření slouží k rozšíření iterovatelného pole nebo objektu do jednotlivých prvků. Operátor šíření umožňuje snadno manipulovat s poli nebo objekty rozložením jejich prvků nebo vlastností do nových polí nebo objektů.
Spread
...
Operátor šíření slouží ke kopírování vlastností z jednoho objektu do druhého nebo ke sloučení polí a objektů stručným a čitelným způsobem.
Příklady
Následující příklad ukazuje operátor rozložení použitý v objektu:
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
Výstup z příkladu:
Name | Typ | Hodnota |
---|---|---|
objB |
objekt | { shape: 'circle', color: 'white' } |
Následující příklad ukazuje operátor šíření použitý v poli:
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
Výstup z příkladu:
Name | Typ | Hodnota |
---|---|---|
arrB |
pole | [ 1, 2, 3, 4 ] |
Následující příklad ukazuje, že se v jedné operaci používá vícekrát:
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
Výstup z příkladu:
Name | Typ | Hodnota |
---|---|---|
arrC |
pole | [ 1, 2, 3, 4, 2, 3 ] |
Následující příklad ukazuje rozložení použité ve víceřádkové operaci:
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
V tomto použití se čárka mezi těmito dvěma řádky nepoužívá. Výstup z příkladu:
Name | Typ | Hodnota |
---|---|---|
objCombined |
objekt | { color: 'white', shape: 'circle' } |
Následující příklad ukazuje, jak podmíněně přidat prvek pole:
@allowed(['white', 'black'])
param color string = 'black'
var colorWhite = { color: 'white' }
var colorBlack = { color: 'black' }
output objB object = ((color == 'white')? { shape: 'circle', ...colorWhite} : { shape: 'circle', ...colorBlack})
Výstup z příkladu:
Name | Typ | Hodnota |
---|---|---|
objB |
objekt | { shape: 'circle', color: 'black' } |
Operace šíření se dá použít k tomu, aby se zabránilo nastavení volitelné vlastnosti. V následujícím příkladu je accessTier nastaven pouze v případě, že úroveň parametru není prázdný řetězec.
param location string = resourceGroup().location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
var accessTier = tier != '' ? {accessTier: tier} : {}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...accessTier
}
}
Předchozí příklad lze také napsat takto:
param location string = resourceGroup().location
param tier string = 'Hot'
var storageAccountName = uniqueString(resourceGroup().id)
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
...(tier != '' ? {accessTier: tier} : {})
}
}
Operátor šíření lze použít k přepsání existujících vlastností.
param location string = resourceGroup().location
param storageProperties {
accessTier: string?
}
resource mystorage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: uniqueString(resourceGroup().id)
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Cold'
...storageProperties
}
}
Další kroky
- Ke spuštění příkladů použijte Azure CLI nebo Azure PowerShell k nasazení souboru Bicep.
- Pokud chcete vytvořit soubor Bicep, přečtěte si článek Rychlý start: Vytvoření souborů Bicep pomocí editoru Visual Studio Code.
- Informace o řešení chyb typu Bicep naleznete v tématu Libovolná funkce pro Bicep.