빠른 시작: Visual Studio Code를 사용하여 Bicep 파일 만들기

이 빠른 시작은 Visual Studio Code에서 Bicep 파일을 만드는 단계를 안내합니다. 스토리지 계정과 가상 네트워크를 만듭니다. 또한 Bicep 확장을 통해 형식 안전성, 구문 유효성 검사 및 자동 완성을 제공하여 개발을 간소화하는 방법을 알아봅니다.

비스한 작성 환경이 Visual Studio에서도 지원됩니다. 빠른 시작: Visual Studio를 사용하여 Bicep 파일 만들기를 참조하세요.

필수 조건

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Bicep 개발 환경을 설정하려면 Bicep 도구 설치를 참조하세요. 해당 단계를 완료한 후 Visual Studio CodeBicep 확장을 사용할 수 있습니다. 최신 Azure CLI 또는 최신 Azure PowerShell 모듈을 사용할 수도 있습니다.

리소스 코드 조각 추가

Bicep 확장이 포함된 VS Code는 미리 정의된 코드 조각을 제공하여 개발을 간소화합니다. 이 빠른 시작에서는 가상 네트워크를 만드는 코드 조각을 추가합니다.

Visual Studio Code를 시작하고 main.bicep라는 새 파일을 만듭니다.

main.bicepvnet을 입력하고 목록에서 res-vnet을 선택한 후 [TAB] 또는 [ENTER]를 누릅니다.

Screenshot of adding snippet for virtual network.

VS 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 버전과 관련된 경고를 나타내고 빨간색 물결 밑줄은 누락된 매개 변수 정의로 인해 발생한 오류를 나타냅니다.

@2019-11-01을 제거하고 @로 바꿉니다. 최신 API 버전을 선택합니다.

Screenshot of updating API version.

다음 섹션에서는 매개 변수 정의 누락 오류를 수정할 예정입니다.

요구 사항에 맞게 이 코드를 수정할 수도 있습니다. 예를 들어, name은 가상 네트워크의 좋은 이름이 아닙니다. name 속성을 examplevnet로 변경합니다.

name: 'exampleVNet'

매개 변수 추가

마지막 섹션에 추가한 코드 조각에는 매개 변수 정의가 누락되었습니다.

파일 상단에 다음을 추가합니다.

param location

location 뒤에 공백을 추가하면 intellisense가 매개 변수에 사용할 수 있는 데이터 형식을 제공한다는 점에 유의해야 합니다. 문자열을 선택합니다.

Screenshot of adding string type to parameter.

매개 변수에 기본값을 지정합니다.

param location string = resourceGroup().location

기본값에 사용되는 함수에 대한 자세한 내용은 resourceGroup()을 참조하세요.

기본값을 사용하여 스토리지 계정 이름에 대한 다른 매개 변수를 추가합니다.

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

자세한 내용은 보간uniqueString()을 참조하세요.

이 매개 변수는 정상적으로 작동하지만 스토리지 계정에는 이름 길이의 제한이 있습니다. 이름은 3자 이상, 24자 이하여야 합니다. 매개 변수에 데코레이터를 추가하여 관련 요구 사항을 지정할 수 있습니다.

매개 변수 위에 줄을 추가하고 @을 입력합니다. 사용 가능한 데코레이터가 표시됩니다. minLengthmaxLength의 데코레이터가 둘 다 있습니다.

Screenshot of adding decorators to parameter.

두 데코레이터를 모두 추가하고 문자 제한을 지정합니다.

@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 lower case letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

매개 변수를 사용할 준비가 되었습니다.

리소스 추가

코드 조각을 사용하여 스토리지 계정을 정의하는 대신 intellisense를 사용하여 값을 설정합니다. Intellisense를 사용하면 값을 수동으로 입력하는 것보다 이 단계가 더 쉬워집니다.

리소스를 정의하려면 resource 키워드를 사용합니다. 가상 네트워크 아래에 resource exampleStorage를 입력합니다.

resource exampleStorage

exampleStorage는 배포 중인 리소스의 기호 이름입니다. 이 이름을 사용하여 Bicep 파일의 다른 부분에 있는 리소스를 참조할 수 있습니다.

기호 이름 뒤에 공백을 추가하면 리소스 종류 목록이 표시됩니다. 사용 가능한 옵션에서 선택할 수 있을 때까지 storageacc를 계속 입력합니다.

Screenshot of selecting storage accounts for resource type.

Microsoft.Storage/storageAccounts를 선택한 후 사용 가능한 API 버전이 제공됩니다. 최신 버전을 선택합니다. 다음 스크린샷에서는 2023-01-01입니다.

Screenshot of select API version for resource type.

리소스 종류의 작은따옴표 뒤에 = 및 공백을 추가합니다. 리소스에 속성을 추가할 수 있는 옵션이 제공됩니다. required-properties를 선택합니다.

Screenshot of adding required properties.

이 옵션은 배포에 필요한 리소스 종류의 모든 속성을 추가합니다. 이 옵션을 선택하면 스토리지 계정에 다음 속성이 포함됩니다.

resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

거의 완료되었습니다. 해당 속성의 값을 제공하면 됩니다.

다시, Intellisense가 도움이 됩니다. 스토리지 계정의 이름을 포함하는 매개 변수인 namestorageAccountName으로 설정합니다. location의 경우 앞서 만든 매개 변수인 location으로 설정합니다. sku.namekind를 추가하면 Intellisense가 유효한 옵션을 제공합니다.

완료되면 다음이 수행됩니다.

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

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: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Bicep 구문에 관한 자세한 내용은 Bicep 구조를 참조하세요.

리소스 시각화

파일의 리소스 표현을 볼 수 있습니다.

오른쪽 위 모퉁이에서 시각화 도우미 단추를 선택하여 Bicep 시각화 도우미를 엽니다.

Screenshot of Bicep Visualizer.

시각화 도우미는 리소스 종속성 정보와 함께 Bicep 파일에 정의된 리소스를 보여 줍니다. 이 빠른 시작에 정의된 두 리소스는 종속성 관계가 없으므로 두 리소스 간에 커넥터가 표시되지 않습니다.

Screenshot of Bicep Visualizer diagram.

Bicep 파일 배포

  1. VSCode 내에서 Bicep 파일을 마우스 오른쪽 단추로 클릭한 후 Bicep 파일 배포를 선택합니다.

    Screenshot of Deploy Bicep file.

  2. 배포 이름을 입력하세요. 텍스트 상자에 deployStorageAndVNet을 입력한 다음 [ENTER]를 누릅니다.

  3. 맨 위에 있는 리소스 그룹 선택 목록 상자에서 새 리소스 그룹 만들기를 선택합니다.

  4. exampleRG를 리소스 그룹 이름으로 입력하고 [ENTER] 키를 누릅니다.

  5. 리소스 그룹의 위치를 선택하고 미국 중부 또는 원하는 위치를 선택한 다음 [ENTER]를 누릅니다.

  6. 매개 변수 파일 선택에서 없음을 선택합니다.

    Screenshot of Select parameter file.

리소스를 만드는 데 몇 분 정도 걸립니다. 자세한 내용은 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

다음 단계