Bicep 템플릿의 JSON 매개변수

안녕하십니까?

Azure 리소스의 배포를 관리하기 위해 IAC(Infrastructure As Code)(도메인 특정 언어)를 수행하기 위해 Microsoft Block에 대한 Bicep의 새로운 소식을 들어보셨을 것입니다. This is great learning module from Microsoft which covers basics to advanced

내가 좋아하는 한 가지는 Bicep 템플릿에 many ways to pass the parameters이 있다는 것입니다. [그의 블로그를 확인하세요. 그는 Azure DevOps에 대한 놀라운 콘텐츠를 가지고 있습니다] 간단히 말해서 우리가 Arm 템플릿에 전달하는 방식과 동일하게 param 파일을 통해 매개 변수를 전달할 수 있습니다. 또는 az deployment group 명령을 통해 인라인될 수 있습니다. 조합이 된다.

시나리오: 서로 다른 환경에서 서로 다른 스토리지 계정 SKU(DEV용 표준 LRS 및 프로덕션용 표준 RAGZRS)를 갖기를 원한다고 가정해 보겠습니다. bicep 개체 매개변수는 유사한 작업을 수행할 수 있지만 일반 JSON만큼 유연하지는 않습니다. 명령 인라인을 통해 Object Param을 전달할 수 없습니다(적어도 방법을 찾지 못했습니다). JSON 문자열은 축소할 수 있으며 Azure DevOps 변수를 통해 관리할 수 있습니다.

json을 사용하여 이를 달성할 수 있습니다Bicep Functions.

아래 예제는 일반 JSON 객체(팔 스키마 기반이 아님)를 Bicep 템플릿에 인라인 매개변수로 전달하는 것입니다.

param storageJsonString string
param location string = resourceGroup().location

#Using Json Function to parse the Json string to json object
var storageConfig = json(storageJsonString)

resource storage_account 'Microsoft.Storage/storageAccounts@2021-09-01'= {
  kind: storageConfig.kind
  name: storageConfig.name
  location: location
  sku: {
    name: storageConfig.sku
  }
  properties: {
    allowBlobPublicAccess: true
    accessTier: 'Hot'
  }
}



인라인 JSON 문자열 매개변수를 이 템플릿에 전달하여 PowerShell에서 이를 호출합니다.

$stg = '{\"name\":\"pa1pocstg\",\"sku\":\"Standard_LRS\",\"kind\":\"StorageV2\"}'
az deployment group create --resource-group $rg `
--template-file .\Bicep101\bicep-json.bicep `
--parameters storageJsonString=$stg



당신이 무슨 생각을하는지 제게 알려주세요.

좋은 웹페이지 즐겨찾기