비셉이란?

3536 단어 bicepdsllanguageazure

푸른 이두근



Azure Bicep은 Azure 리소스를 선언적으로 배포하기 위한 새로운 DSL(도메인 특정 언어)입니다. Bicep은 범용 프로그래밍 언어가 아니라 Azure Resource Manager (ARM) 템플릿에 대한 투명한 추상화입니다. 이렇게 하면 ARM 템플릿에서 합법적인 속성이 Bicep에서도 유효합니다.

Bicep의 이점



Bicep은 다음과 같은 이점을 제공합니다.
  • 모든 유용한 리소스 유형 및 API 버전 지원
  • 간단한 구문
  • 저작 경험
  • 반복 가능한 결과
  • 오케스트레이션
  • 모듈성
  • Azure 서비스와 통합
  • 미리 보기 변경 사항
  • 관리할 주 또는 왕국 문서 없음
  • 가격 없음 및 오픈 소스

  • 왜 Bicep?



    ARM 템플릿은 Azure 인프라 및 구성을 정의하는 선언적 방법을 제공하는 JSON 문서입니다. ARM 템플릿 언어는 루프와 같은 내장 함수 및 기타 언어 구성을 제공하며 더 큰 동적 인프라 정의를 만드는 데 도움이 됩니다.

    그러나 ARM 템플릿의 JSON 구문은 파일을 상당히 장황하게 만들고 JSON 통계 표현 내에서 지원되는 것을 재생해야 한다는 사실 때문에 확장성을 제한합니다.

    인프라의 복잡성이 증가함에 따라 ARM 템플릿은 거의 읽을 수 없고 유지 관리도 어려워집니다. ARM 템플릿 배포에 대한 선택 사항이 있습니다. 특히 HashiCorp Terraform 또는 Pulumi SDK. 이러한 도구는 ARM 템플릿을 사용하지 않지만 인프라를 코드로 설명하는 대체 방법을 제공합니다.
    complexity of the infrastructure로 인해 템플릿을 유지하기가 어렵습니다. 템플릿을 배포하는 다른 방법이 있습니다. 특히 Pulumi SDK 또는 HashiCorp Terraform. 이러한 도구는 템플릿을 사용하지 않지만 대신 인프라를 코드로 정의하는 대체 방법을 제공합니다.

    Bicep 파일과 동등한 템플릿 간에는 차이가 있습니다. 저장소 계정을 배포하는 두 가지 예가 있습니다.

    다음 예제는 Bicep 파일과 동등한 JSON 템플릿 간의 차이점을 보여줍니다. 두 예제 모두 저장소 계정을 설정합니다.

    param storageAccountName string
    param accessTier string = 'Hot'
    param location string = 'WestUS2'
    
    resource sa 'Microsoft.Storage/storageAccounts@2019-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: accessTier
      }
    }
    


    위 인스턴스의 26개 추적은 Azure 저장소 계정을 프로비저닝하기 위해 ARM 템플릿을 생성할 수 있는 재사용 가능한 Bicep 파일을 만드는 데 필요한 것입니다. 이것은 컴파일될 때 다음 ARM 템플릿을 생성합니다.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storageAccountName": {
          "type": "string"
        },
        "accessTier": {
          "type": "string",
          "defaultValue": "Hot"
        },
        "location": {
          "type": "string",
          "defaultValue": "WestUS2"
        }
      },
      "functions": [],
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-06-01",
          "name": "[parameters('storageAccountName')]",
          "location": "[parameters('location')]",
          "sku": {
            "name": "Standard_LRS"
          },
          "kind": "StorageV2",
          "properties": {
            "accessTier": "Hot"
          }
        }
      ],
      "metadata": {
        "_generator": {
          "name": "bicep",
          "version": "0.3.126.58533",
          "templateHash": "6796585337478950038"
        }
      }
    }
    


    생성된 템플릿은 Bicep 파일 측정값의 거의 두 배입니다. 이 ARM 템플릿은 중요한 매개 변수 값을 다른 JSON으로 제공하거나 Azure CLI 또는 Azure PowerShell을 사용할 때 명령줄에서 배포할 수 있습니다.

    이것은 ARM 템플릿을 생성하기 위해 자체 언어로 가지고 있는 유연성을 제안하는 인스턴스입니다. 이제 Bicep은 기존 프로그래밍 언어의 구성뿐 아니라 Azure 인프라 정의를 재사용 가능한 더 작은 모듈로 구성하는 방법도 제시합니다.

    제 글을 끝까지 읽어주셔서 감사합니다. 오늘 뭔가 독특한 것을 깨달았기를 바랍니다. 이 기사가 마음에 드셨다면 친구들과 공유해 주시고 저와 공유할 제안이나 생각이 있으시면 댓글 상자에 적어주세요.

    좋은 웹페이지 즐겨찾기