다음을 통해 공유


Bicep이란?

Bicep는 선언적 구문을 사용하여 Azure 리소스를 배포하는 DSL(도메인 특정 언어)입니다. Bicep 파일에서 Azure에 배포하려는 인프라를 정의한 다음, 개발 수명 주기 내내 해당 파일을 사용하여 해당 인프라를 반복적으로 배포합니다. 리소스는 일관된 방식으로 배포됩니다.

Bicep은 간결한 구문, 신뢰할 수 있는 형식 안전성 및 코드 재사용 지원을 제공합니다. Bicep은 Azure에서 코드형 인프라 솔루션에 대한 최고의 제작 환경을 제공합니다.

Bicep의 이점

Bicep에서 제공하는 이점은 다음과 같습니다.

  • 모든 리소스 종류 및 API 버전 지원: Bicep은 Azure 서비스에 대한 모든 미리 보기 및 GA 버전을 즉각적으로 지원합니다. 리소스 공급자가 새로운 리소스 유형과 API 버전을 도입하는 즉시 Bicep 파일에서 사용할 수 있습니다. 새 서비스를 사용하기 전에 도구가 업데이트될 때까지 기다릴 필요가 없습니다.

  • 단순 구문: 동등한 JSON 템플릿과 비교할 때 Bicep 파일은 더 간결하고 읽기 쉽습니다. Bicep에는 프로그래밍 언어에 대한 사전 지식이 필요하지 않습니다. Bicep 구문은 선언적이며 배포하려는 리소스 및 리소스 속성을 지정합니다.

    다음 예제에서는 Bicep 파일과 동등한 JSON 템플릿의 차이점을 보여줍니다. 두 예제 모두 스토리지 계정을 배포합니다.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • 제작 환경: VS Code에 대한 Bicep 확장을 사용하여 Bicep 파일을 만드는 경우 최고 수준의 제작 환경이 제공됩니다. 편집기에서는 다양한 형식 안전성, IntelliSense 및 구문 유효성 검사를 제공합니다.

    실시간으로 Bicep 파일을 작성하는 화면 캡처

    Visual Studio용 Bicep 확장을 사용하여 Visual Studio에서 Bicep 파일을 만들 수도 있습니다.

  • 반복 가능한 결과: 리소스가 일관되게 배포된다는 확신을 가지고 개발 수명 주기 전반에 걸쳐 인프라를 배포합니다. Bicep 파일은 idempotent입니다. 즉, 동일한 파일을 여러 번 배포하고 동일한 상태에서 동일한 리소스 유형을 가져올 수 있습니다. 업데이트를 나타내는 여러 개별 파일을 개발하는 대신 원하는 상태를 나타내는 하나의 파일을 개발할 수 있습니다. 예를 들어 다음 파일은 스토리지 계정을 만듭니다. 지정된 속성이 이미 있는 경우 이 템플릿 및 스토리지 계정을 배포하는 경우 변경되지 않습니다.

    param location string = resourceGroup().location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-05-01' = {
      name: 'mystorageaccount'
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

  • 오케스트레이션: 복잡한 작업 순서 지정 작업에 대해 우려할 필요가 없습니다. Resource Manager는 상호 종속된 리소스의 배포를 오케스트레이션하여 올바른 순서로 만듭니다. 가능한 경우 Resource Manager는 리소스를 병렬로 배포하므로 배포가 직렬 배포보다 빠르게 완료됩니다. 여러 명령 명령이 아닌 하나를 통해 파일을 배포합니다.

    템플릿에 없는 코드로 Bicep 파일과 인프라 간의 배포를 비교하는 다이어그램입니다.

  • 모듈: 모듈을 사용하여 Bicep 코드를 관리 가능한 부분으로 분할합니다. 모듈을 사용하면 코드를 다시 사용하고 개발을 간소화할 수 있습니다. 모듈은 관련 리소스 집합을 배포합니다. 해당 리소스를 배포해야 하는 경우 Bicep 파일에 모듈을 추가합니다.

  • Azure 서비스와 통합: Bicep은 Azure Policy, 템플릿 사양 및 Azure Blueprints와 같은 Azure 서비스와 통합됩니다.

  • 변경 내용 미리 보기: Bicep 파일을 배포하기 전에 what-if 작업을 사용하여 변경 내용을 미리 볼 수 있습니다. what-if 작업은 만들거나, 업데이트하거나, 삭제할 리소스와 변경할 리소스 속성을 보여 줍니다. 또한 환경의 현재 상태를 확인하고 이 상태를 관리할 필요가 없습니다.

  • 관리할 상태 또는 상태 파일이 없습니다. Azure는 모든 상태를 저장합니다. 다른 사용자와 공동 작업하고 업데이트가 예상대로 처리되는지 확신할 수 있습니다.

  • 비용 및 오픈 소스 없음: Bicep은 무료이므로 프리미엄 기능을 지불할 필요가 없습니다. Microsoft 지원 지원합니다.

시작하기

Bicep으로 시작하려면:

  1. 도구를 설치합니다. 자세한 내용은 Bicep 개발 및 배포 환경 설정을 참조하거나 VS Code devcontainer/Codespaces 리포지토리를 사용하여 미리 구성된 제작 환경을 가져옵니다.
  2. Bicep대한 빠른 시작 및 학습 모듈을 완료합니다.

기존 Resource Manager 템플릿을 Bicep으로 디컴파일하려면 ARM 템플릿 JSON을 Bicep으로 디컴파일하는 방법을 참조하세요. Bicep Playground를 사용하여 Bicep 및 해당 JSON을 나란히 볼 수 있습니다.

Bicep 파일에서 사용할 수 있는 리소스에 대해 알아보려면 Bicep 리소스 참조를 참조하세요.

Bicep GitHub 리포지토리에서 Bicep 예제를 찾을 수 있습니다.

언어에 대한 정보

Bicep은 애플리케이션을 작성하기 위한 일반적인 프로그래밍 언어가 아닙니다. Bicep 파일은 일련의 프로그래밍 명령을 작성하지 않고 Azure 리소스 및 리소스 속성을 선언합니다.

Bicep 작업 상태를 추적하려면 Bicep 프로젝트 리포지토리를 참조하세요.

Bicep에 대해 알아보려면 다음 비디오를 시청하세요.

JSON 대신 Bicep을 사용하여 Resource Manager 템플릿을 개발할 수 있습니다. Resource Manager 템플릿을 만드는 JSON 구문은 자세한 정보이며 복잡한 식이 필요할 수 있습니다. Bicep 구문은 이러한 복잡성을 줄이고 개발 환경을 향상시킵니다. Bicep은 JSON 템플릿의 기능을 잃지 않는 Resource Manager JSON 템플릿에 대한 투명한 추상화입니다. 배포하는 동안 Bicep CLI는 Bicep 파일을 Resource Manager JSON 템플릿으로 변환합니다.

Resource Manager 템플릿에서 유효한 리소스 종류, API 버전 및 속성은 Bicep 파일에서 유효합니다.

Bicep은 동등한 JSON과 비교할 때 더 쉽고 간결한 구문을 제공합니다. 대괄호로 묶인 식 [...]을 사용하지 않습니다. 대신 함수를 직접 호출하고 매개 변수 및 변수에서 값을 가져옵니다. 배포된 각 리소스에 심볼 이름을 지정하여 템플릿에서 해당 리소스를 쉽게 참조할 수 있게 됩니다.

구문 전체 비교는 템플릿에 대한 JSON 및 Bicep 비교를 참조하세요.

Bicep은 리소스 간의 종속성을 자동으로 관리합니다. 리소스의 심볼 이름이 다른 리소스 선언에서 사용되는 경우 dependsOn을 설정하지 않아도 됩니다.

Bicep 파일의 구조는 JSON 템플릿보다 더 유연합니다. 파일의 어디에서나 매개 변수, 변수, 출력을 선언할 수 있습니다. JSON에서는 템플릿의 해당 섹션 내에서 모든 매개 변수, 변수, 출력을 선언해야 합니다.

지원 받기

ARMAzure Resource Manager) 템플릿 관련 문제에 대한 지원 티켓을 여는 단계는 다음과 같습니다.

  1. Azure Portal을 엽니다.

  2. 오른쪽 상단 모서리에 있는 지원 + 문제 해결 아이콘을 선택합니다.

  3. 문제 간략하게 설명ARM 템플릿을 입력한 다음 이동을 선택합니다.

  4. 어떤 서비스에 문제가 있나요?에서 모니터링 및 관리 아래의 포털을 선택한 후 다음을 선택합니다.

  5. 구독을 선택하고 다음을 선택합니다.

  6. ARM 템플릿 문제를 선택한 다음 다음을 선택합니다.

    ARM 템플릿 지원 요청의 스크린샷.

다음 단계

시작하려면 빠른 시작을 참조 하세요.

일반적인 질문에 대한 답변은 Bicep에 대해 자주 묻는 질문을 참조하세요.