템플릿 사양 배포

완료됨

템플릿 사양을 만들고 게시한 후 배포할 수 있습니다. 이 단원에서는 템플릿 사양을 배포하는 방법에 대해 알아봅니다.

템플릿 사양을 사용하여 배포 만들기

리소스 그룹에 템플릿 사양을 배포하려면 익숙한 것과 동일한 New-AzResourceGroupDeployment cmdlet을 사용합니다. 서식 파일을 지정하는 대신, 다음 예제와 같이 템플릿 사양의 리소스 ID를 지정합니다.

New-AzResourceGroupDeployment `
  -TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'

템플릿 사양은 리소스 그룹 내에 만들어야 하지만, 이러한 cmdlet을 사용하여 구독, 관리 그룹 또는 테넌트에 배포할 수 있습니다.

이 범위에서 배포하려면 다음을 수행합니다. 이 PowerShell cmdlet을 사용합니다.
Resource group New-AzResourceGroupDeployment
Subscription New-AzSubscriptionDeployment
관리 그룹 New-AzManagementGroupDeployment
테넌트 New-AzTenantDeployment

각 cmdlet은 -TemplateSpecId 매개 변수를 허용하여 이러한 범위 중 하나에서 템플릿 사양 배포를 시작합니다.

리소스 그룹에 템플릿 사양을 배포하려면 익숙한 것과 동일한 az deployment group create 명령을 사용합니다. 서식 파일을 지정하는 대신, 다음 예제와 같이 템플릿 사양의 리소스 ID를 지정합니다.

az deployment group create \
  --template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"

템플릿 사양은 리소스 그룹 내에 만들어야 하지만, 이러한 명령을 사용하여 구독, 관리 그룹 또는 테넌트에 배포할 수 있습니다.

이 범위에서 배포하려면 다음을 수행합니다. 다음 Azure CLI 명령을 실행합니다.
Resource group az deployment group create
Subscription az deployment sub create
관리 그룹 az deployment mg create
테넌트 az deployment tenant create

각 명령은 --template-spec 인수를 허용하여 이러한 범위 중 하나에서 템플릿 사양 배포를 시작합니다.

템플릿 사양을 연결된 배포로 사용

다른 ARM 템플릿(Azure Resource Manager 템플릿) 내에서 템플릿 사양을 사용하려면 해당 템플릿 사양을 사용하는 배포를 만듭니다. 이 유형의 배포는 외부에서 지정된 배포 템플릿에 연결하기 때문에 연결된 배포라고 합니다.

Azure에서 배포는 리소스 종류 Microsoft.Resources/deployments를 포함하는 리소스입니다. ARM 템플릿을 배포하는 경우 배포 리소스를 만듭니다. 템플릿 사양을 배포하는 경우 다음과 같이 동일한 개념이 적용됩니다.

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    }
  }
}

템플릿 사양 배포에 제공할 매개 변수가 있는 경우 parameters 속성을 사용합니다.

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    },
    "parameters": {
      "storageAccountName": {
        "value": "[parameters('storageAccountName')]"
      }
    }
  }
}

템플릿 사양을 Bicep 모듈로 사용

Bicep 파일 내에서 템플릿 사양을 모듈로 사용할 수 있습니다.

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
}

모듈 경로에는 다음과 같이 특수한 형식이 사용됩니다.

Diagram showing the components of the template spec path.

모듈 경로에는 콜론(:)으로 구분되는 세 가지 구성 요소가 있습니다.

  • 스키마: Bicep은 ‘스키마’라는 여러 유형의 모듈을 지원합니다. 템플릿 사양을 모듈로 사용할 경우 ts를 스키마로 사용합니다.
  • 구독 ID, 리소스 그룹 이름 및 템플릿 사양 이름: 이러한 값은 이전에 게시한 템플릿 사양 리소스의 위치를 지정해야 합니다. 슬래시(/)를 사용 하여 구독 ID, 리소스 그룹 이름 및 템플릿 사양 이름을 구분합니다. 모듈 경로의 이 섹션은 템플릿 사양의 전체 리소스 ID가 아니라 리소스 ID의 구성 요소 중 일부일 뿐입니다.
  • 버전: 템플릿 사양 버전이 포함되어야 합니다.

참고

모듈에 대한 경로를 지정할 경우 변수, 매개 변수 또는 문자열 보간을 사용할 수 없습니다. 템플릿 사양 전체 경로를 Bicep 파일에 저장해야 합니다.

템플릿 사양에 제공할 매개 변수가 있는 경우 params 속성을 사용합니다.

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
  params: {
    storageAccountName: storageAccountName
  }
}

Bicep 파일을 빌드할 때 템플릿 사양 파일이 다운로드되어 JSON ARM 템플릿에 복사(‘변환 컴파일’)됩니다. 일반적으로 이 작업은 Bicep 파일을 배포할 때 발생하지만 Bicep 도구를 사용하여 명령을 실행 bicep build 하여 명시적으로 변환할 수도 있습니다.