Bicep 스프레드 연산자
스프레드 연산자는 반복 가능한 배열 또는 개체를 개별 요소로 확장하는 데 사용됩니다. 스프레드 연산자를 사용하면 해당 요소 또는 속성을 새 배열 또는 개체로 분산하여 배열 또는 개체를 쉽게 조작할 수 있습니다.
분산
...
스프레드 연산자는 한 개체에서 다른 개체로 속성을 복사하거나 배열과 개체를 간결하고 읽기 쉬운 방식으로 병합하는 데 사용됩니다.
예제
다음 예제에서는 개체에 사용되는 스프레드 연산자를 보여줍니다.
var objA = { color: 'white' }
output objB object = { shape: 'circle', ...objA }
예제의 출력:
이름 | 타입 | 값 |
---|---|---|
objB |
개체 | { 도형: 'circle', color: 'white' } |
다음 예제에서는 배열에 사용되는 스프레드 연산자를 보여줍니다.
var arrA = [ 2, 3 ]
output arrB array = [ 1, ...arrA, 4 ]
예제의 출력:
이름 | 타입 | 값 |
---|---|---|
arrB |
배열 | [ 1, 2, 3, 4 ] |
다음 예제에서는 단일 작업에서 여러 번 사용된 스프레드를 보여줍니다.
var arrA = [ 2, 3 ]
output arrC array = [ 1, ...arrA, 4, ...arrA ]
예제의 출력:
이름 | 타입 | 값 |
---|---|---|
arrC |
배열 | [ 1, 2, 3, 4, 2, 3 ] |
다음 예제에서는 다중 선 작업에 사용되는 스프레드를 보여줍니다.
var objA = { color: 'white' }
var objB = { shape: 'circle'}
output objCombined object = {
...objA
...objB
}
이 사용법에서는 두 줄 사이에 쉼표가 사용되지 않습니다. 예제의 출력:
이름 | 타입 | 값 |
---|---|---|
objCombined |
개체 | { color: 'white', shape: 'circle' } |
다음 예제에서는 배열 요소를 조건부로 추가하는 방법을 보여 줍니다.
@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})
예제의 출력:
이름 | 타입 | 값 |
---|---|---|
objB |
개체 | { 도형: 'circle', color: 'black' } |
스프레드 작업은 선택적 속성을 설정하지 않도록 하는 데 사용할 수 있습니다. 다음 예제에서는 매개 변수 계층이 빈 문자열이 아닌 경우에만 accessTier가 설정됩니다.
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
}
}
앞의 예제는 다음과 같이 작성할 수도 있습니다.
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} : {})
}
}
스프레드 연산자를 사용하여 기존 속성을 재정의할 수 있습니다.
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
}
}
다음 단계
- 예제를 실행하려면 Azure CLI 또는 Azure PowerShell을 사용하여 Bicep 파일을 배포합니다.
- Bicep 파일을 만들려면 빠른 시작: Visual Studio Code로 Bicep 파일 만들기를 참조하세요.
- Bicep 형식 오류를 해결하는 방법에 대한 자세한 내용은 Bicep에 대한 함수를 참조하세요.