Bicep0.5가 나왔습니다.

개요


2022/4/9에 기대했던 Bicep 0.5가 나와서 써봤어요.이번에 주목받는 업데이트는 빅 퍼블릭 리지스트리[1]다.나는 기존의 틀로 이것을 시험해 보겠다.
현재 공개된 모듈의 원본은 Bicep Registry Modules에 있다.수량은 아직 적지만 VNet이 있으니 azure-bastion01에 넣어 보세요.

VNet 모듈 시작


VNet은 변경되기 전에 다음bicep에 정의됩니다.
resource vnet 'Microsoft.Network/virtualNetworks@2020-06-01' = {
  name: virtualNetworkName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        addressPrefix
      ]
    }
    subnets: subnets
  }
}
publicmodule의 최소한의 매개 변수의 예Virtual Networks module(이하)로 대체합니다.module의name를 끼우지 않으려는 노력이 있었지만, 바꾸기만 하면 갈 수 없을 것 같았다.
module vnet 'br/public:network/virtual-network:1.0' = {
  name: '${uniqueString(deployment().name, 'WestEurope')}-minvnet'
  params: {
    name: virtualNetworkName
    addressPrefixes: [
      '10.0.0.0/16'
    ]
  }
}
이걸 bicep를 통해 보니 금방 틀려서 유감입니다.
$ bicep build ./vnet.bicep
vnet.bicep(10,13) : Error BCP192: Unable to restore the module with reference \
  "br:mcr.microsoft.com/bicep/network/virtual-network:1.0": The module does not exist in the registry.
vnet.bicep(22,26) : Error BCP062: The referenced declaration with name "vnet" is not valid.
오류는 The module does not exist in the registry입니다.창고에 모듈이 없는 것 같습니다. mcr에 있는지 확인하세요.평소 이런 문제가 발생했을 때는 Microsoft Container Registry (MCR)에 적힌 방법으로 조사한다.불편하지만 괜찮아요.
우선 창고에 등록했는지 조사한다.등록된 것 같은데.
curl -s https://mcr.microsoft.com/v2/_catalog | grep bicep
    "bicep/samples/hello-world",
    "bicep/samples/array-loop",
    "bicep/compute/availability-set",
    "bicep/deployment-scripts/import-acr",
    "bicep/network/virtual-network",
이렇게 하면 태그가 다를 수 있으니 라벨을 보세요.1.0이 아니라 1.0.1이다.
$ curl -s https://mcr.microsoft.com/v2/bicep/network/virtual-network/tags/list
{
  "name": "bicep/network/virtual-network",
  "tags": [
    "1.0.1"
  ]
}
이 모듈을 사용하여 모듈의 경로를 'br/public:network/virtual-network:1.0.1'로 변경합니다.subnet의 정의를 추가한 후 이런 느낌.(이하)로 변경됩니다.
module vnet 'br/public:network/virtual-network:1.0.1' = {
  name: '${uniqueString(deployment().name, location)}-vnet'
  params: {
    name: virtualNetworkName
    location: location
    addressPrefixes: [
      addressPrefix
    ]
    subnets: subnets
  }
}

subnet 정의 일치


또 하나의 변경이 있다.이 VNet의 모듈은subnet에서 받아들이는 형식으로 ARM 현지인과 약간 다르다.원래는 생략properties.addressPrefix한 부분을 한 단계 올려 썼다.이것은 vnetpublicmodule의 실현에 달려 있지만, 나는 이것이 디자인 모델로 통일될 수 있다고 생각한다.이 근처는 아직 확인되지 않았습니다.[2]
"name": "subnet",
"properties": {
  "addressPrefix": "10.1.0.0/24",
vnet public module의 경우
"name": "subnet",
"addressPrefix": "10.1.0.0/24",
이렇게 수정하면 디버깅이 가능합니다.

최후


일부는 문서의 업데이트가 따라가지 못하기 때문에 VS코드의 플러그인에서 창고가 있는 브라우저를 만들 수 있는 등 노력을 기울이면 충분히 사용할 수 있다고 생각합니다.모듈의 수가 아직 적기 때문에 더 많이 늘릴 수 있기를 기대하고 있다.그 전에 효과적으로 활용할 것이다Common Azure Resource Modules Library.
내 devcontainer0.5.6로 업데이트됐다.
각주
Public module registry 공식 문서는 docs.microsoft.com/Public module registry에 있습니다.GitHub Bicep #62 또는 GitHub Bicep #2128도 참고할 수 있습니다.↩︎
properties에 들어가는 평면화(위로 이동?)이 근처에서 이야기를 나누고 있는 것 같다.GitHub Bicep #2052 당연히'이름에 충돌이 있겠죠'라는 말이 나온다.↩︎

좋은 웹페이지 즐겨찾기