Understand the use of bicep
우선 시작하기전에 VSCode에서 bicep 익스텐션을 설치합니다.
그리고 main.bicep 파일을 만듭니다.
스니펫이 잘 적용되는지 확인합니다.
vnet을 선택하면 res-vnet이 자동으로 추천해줍니다.
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
name: 'name'
location: location
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
이 스니펫은 가상 네트워크를 정의하기 위한 모든 value들을 포함합니다.
그리고 원하는 요소들을 바꿀 수 있습니다.
예를 들어서 이름을 바꿉시다.
name: 'examplevnet'
storage 계정 이름을 위해서 파일 맨 위에 파라미터를 추가합시다.
param storageName string
@를 통해서 이름에 대한 요구 조건을 명시할 수 있습니다.
@minLength(3)
@maxLength(24)
param storageName string
또한 파리미터에 대한 설명을 명시할 수 있습니다.
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string
파일 맨 밑에 다음과 같이 작성합니다.
resource exampleStorage'Microsoft.Storage/storageAccounts@2021-02-01' =
그리고 스니펫에서 = 다음에 required-properties를 선택합니다.
전체 코드는 아래와 같습니다.
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
name: 'examplevnet'
location: resourceGroup().location // 가상 네트워크의 위치는 현재 리소스 그룹의 위치와 동일하게 설정됩니다.
// 가상 네트워크의 속성들을 정의합니다.
properties: {
addressSpace: {
addressPrefixes: [
'10.0.0.0/16'
]
}
subnets: [
{
name: 'Subnet-1'
properties: {
addressPrefix: '10.0.0.0/24'
}
}
{
name: 'Subnet-2'
properties: {
addressPrefix: '10.0.1.0/24'
}
}
]
}
}
resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: storageName
location: 'eastus'
// 스토리지 계정의 SKU 정보를 정의합니다.
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
저 같은 경우는 CLI가 편해서 CLI로 배포했습니다.
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename
저 같은 경우는 uniquename에 고유의 이름을 넣었습니다.
az group delete --name exampleRG
📝 참고자료