빠른 시작: Visual Studio Code를 사용하여 Bicep 파일 만들기
이 빠른 시작에서는 Visual Studio Code를 사용하여 Bicep 파일을 만드는 방법을 안내합니다. 스토리지 계정과 가상 네트워크를 만듭니다. 또한 Bicep 확장이 개발을 간소화하기 위해 형식 안전성, 구문 유효성 검사 및 자동 완성을 제공하는 방법을 알아봅니다.
Visual Studio는 비슷한 제작 환경을 지원합니다. 자세한 내용은 빠른 시작: Visual Studio를 사용하여 Bicep 파일 만들기를 참조하세요.
필수 조건
Azure 구독이 아직 없는 경우 시작하기 전에 무료 계정 을 만듭니다.
Bicep 개발 환경을 설정하려면 Bicep 도구 설치를 참조하세요. 이러한 단계를 완료하면 Visual Studio Code 및 Bicep 확장이 설치됩니다. 최신 Azure CLI 버전 또는 Azure PowerShell 모듈도 있습니다.
리소스 코드 조각 추가
Bicep 확장을 사용한 Visual Studio Code는 개발을 간소화하기 위해 미리 정의된 코드 조각을 제공합니다. 이 빠른 시작에서는 가상 네트워크를 만드는 코드 조각을 추가합니다.
Visual Studio Code를 시작하고 main.bicep이라는 새 파일을 만듭니다. main.bicep에서 vnet을 입력하고 목록에서 res-vnet을 선택한 다음 TAB 또는 Enter 키를 누릅니다.
팁
Visual Studio Code에 이러한 IntelliSense 옵션이 표시되지 않는 경우 필수 구성 요소에 지정된 대로 Bicep 확장을 설치했는지 확인합니다. 확장을 설치한 경우 Bicep 파일을 연 후 Bicep 언어 서비스를 시작할 시간을 제공합니다. 일반적으로 빠르게 시작되며 시작될 때까지 IntelliSense 옵션이 없습니다. 오른쪽 아래 모서리에 있는 알림은 서비스가 시작 중임을 나타냅니다. 해당 알림이 사라지면 서비스가 실행 중인 것입니다.
이제 Bicep 파일에 다음 코드가 포함됩니다.
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'
}
}
]
}
}
이 코드 조각 내에서 가상 네트워크를 정의하는 데 필요한 모든 값을 찾을 수 있습니다. 두 개의 중결 밑줄이 표시될 수 있습니다. 노란색은 오래된 API 버전과 관련된 경고를 나타내고 빨간색 물결 밑줄은 누락된 매개 변수 정의로 인해 발생한 오류를 나타냅니다. Bicep Linter는 Bicep 파일에서 구문 오류 및 모범 사례 위반을 확인합니다. 커서를 마우스로 가리키@2019-11-01
면 팝업 창에 'Microsoft.Network/virtualNetworks'에 대한 최신 API 버전 사용이 표시됩니다. 팝업 창에서 빠른 수정을 선택한 다음, 2024-05-01로 바꾸기를 선택하여 API 버전을 업데이트합니다.
또는 제거 @2019-11-01
한 후 .로 대체 @
합니다. 최신 API 버전을 선택합니다.
다음 섹션에서는 매개 변수 정의 누락 오류를 수정할 예정입니다.
요구 사항에 맞게 이 코드를 수정할 수도 있습니다. 예를 들어 가상 name
네트워크에 대한 명확한 이름이 아니므로 속성을 다음과 같이 exampleVnet
변경할 name
수 있습니다.
name: 'exampleVNet'
매개 변수 추가
마지막 섹션에서 추가한 코드 조각은 빨간색 중괄호 밑줄로 표시된 대로 매개 변수 정의를 location
누락합니다. 파일 상단에 다음을 추가합니다.
param location
location 뒤에 공백을 추가하면 IntelliSense가 매개 변수에 사용할 수 있는 데이터 형식을 제공한다는 점에 유의해야 합니다. 문자열을 선택합니다.
매개 변수에 기본값을 지정합니다.
param location string = resourceGroup().location
위의 줄은 가상 네트워크 리소스에 리소스 그룹의 위치를 할당합니다. 기본값에 사용되는 함수에 대한 자세한 내용은 다음을 참조하세요 resourceGroup()
.
파일 맨 위에 기본값을 사용하여 스토리지 계정 이름(빠른 시작의 뒷부분에서 만든)에 대한 다른 매개 변수를 추가합니다.
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
자세한 내용은 보간 및 uniqueString()
을 참조하세요.
이 매개 변수는 정상적으로 작동하지만 스토리지 계정에는 이름 길이의 제한이 있습니다. 이름은 3자 이상이어야 하며 24자 이하여야 합니다. 매개 변수에 데코레이터를 추가하여 이러한 요구 사항을 지정할 수 있습니다.
매개 변수 위에 줄을 추가하고 @을 입력합니다. 사용 가능한 데코레이터가 표시됩니다. minLength 및 maxLength 모두에 대한 데코레이터가 있습니다.
두 데코레이터를 모두 추가하고 문자 제한을 지정합니다(예: 아래의 3과 24).
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
매개 변수의 설명을 추가할 수도 있습니다. Bicep 파일을 배포하는 사람들이 제공할 값을 이해하는 데 도움이 되는 정보를 포함합니다.
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
매개 변수를 사용할 준비가 되었습니다.
리소스 추가
코드 조각을 사용하여 스토리지 계정을 정의하는 대신 IntelliSense를 사용하여 값을 설정합니다. IntelliSense를 사용하면 값을 수동으로 입력하는 것보다 이 단계가 더 쉬워집니다.
리소스를 정의하려면 resource
키워드를 사용합니다. 가상 네트워크 아래에 리소스 storageAccount를 입력 합니다.
resource storageAccount
storageAccount 는 배포하는 리소스의 기호화된 이름입니다. 이 이름을 사용하여 Bicep 파일의 다른 부분에 있는 리소스를 참조할 수 있습니다.
기호 이름 뒤에 공백을 추가하면 리소스 종류 목록이 표시됩니다. 사용 가능한 옵션에서 선택할 수 있을 때까지 storageacc를 계속 입력합니다.
Microsoft.Storage/storageAccounts를 선택한 후 사용 가능한 API 버전이 제공됩니다. 최신 버전을 선택합니다. 다음 스크린샷에서는 2023-05-01입니다.
리소스 종류의 작은따옴표 뒤에 = 및 공백을 추가합니다. 리소스에 속성을 추가할 수 있는 옵션이 제공됩니다. required-properties를 선택합니다.
이 옵션은 배포에 필요한 리소스 종류의 모든 속성을 추가합니다. 이 옵션을 선택하면 스토리지 계정에 다음 속성이 포함됩니다.
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name:
location:
sku: {
name:
}
kind:
}
거의 완료되었으며 다음 단계는 해당 속성에 대한 값을 제공하는 것입니다.
다시 말하지만 Intellisense가 도움이 됩니다. 스토리지 계정의 이름을 포함하는 매개 변수인 name
을 storageAccountName
으로 설정합니다. 의 경우 location
앞에서 만든 매개 변수인 이 매개 변수로 설정합니다 location
. sku.name
및 kind
를 추가하면 IntelliSense가 유효한 옵션을 제공합니다.
필요한 속성과 함께 선택적 속성을 추가하려면 원하는 위치에 커서를 놓고 Ctrl+스페이스바를 누릅니다. 다음 스크린샷은 IntelliSense에서 사용 가능한 속성을 제안하는 방법을 보여 줍니다.
완료되면 다음이 수행됩니다.
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: 'exampleVNet'
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'
}
}
]
}
}
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Bicep 구문에 대한 자세한 내용은 Bicep 파일 구조 및 구문을 참조 하세요.
리소스 시각화
Bicep 시각화 도우미는 파일의 리소스에 대한 그래픽 표현을 보여 줍니다.
오른쪽 위 모서리에서 Bicep 시각화 도우미 단추를 선택하여 도구를 엽니다.
이 시각화 도우미는 Bicep 파일에 정의된 리소스와 해당 종속성 간의 커넥터를 보여 줍니다. 이 빠른 시작에 정의된 두 리소스에는 종속 관계가 없으므로 두 리소스 사이에 커넥터가 없습니다.
Bicep 파일 배포
Visual Studio Code 내에서 Bicep 파일을 마우스 오른쪽 단추로 클릭한 다음 Bicep 파일 배포를 선택합니다.
배포 이름 입력 텍스트 상자에 deployStorageAndVNet을 입력한 다음 Enter 키를 누릅니다.
맨 위에 있는 리소스 그룹 선택 목록 상자에서 새 리소스 그룹 만들기를 선택합니다.
리소스 그룹 이름으로 exampleRG를 입력한 다음 Enter 키를 누릅니 다.
리소스 그룹의 위치를 선택하고 미국 중부 또는 원하는 위치를 선택한 다음 Enter 키를 누릅니다.
매개 변수 파일 선택에서 없음을 선택합니다.
리소스를 만드는 데 몇 분 정도 걸립니다. 자세한 내용은 Visual Studio Code를 사용하여 Bicep 파일 배포를 참조하세요.
Azure CLI 또는 Azure PowerShell을 사용하여 Bicep 파일을 배포할 수도 있습니다.
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename
배포가 완료되면 배포가 성공했음을 설명하는 메시지가 표시됩니다.
리소스 정리
Azure 리소스가 더 이상 필요 없으면 Azure CLI 또는 Azure PowerShell 모듈을 사용하여 빠른 시작 리소스 그룹을 삭제합니다.
az group delete --name exampleRG
다음 단계
Bicep에 대한 Learn 모듈을 탐색합니다.