Azure DevTest Labs 환경 은 PaaS(Platform-as-a-Service) 리소스가 설치된 여러 IaaS(Infrastructure-as-a-Service) VM(가상 머신)으로 구성됩니다. ARM(Azure Resource Manager) 템플릿을 사용하여 DevTest Labs 환경을 프로비전하고 배포할 수 있습니다.
환경과 같은 복잡한 솔루션을 배포하려면 템플릿을 보조 템플릿으로 분리하고 기본 템플릿을 통해 이러한 템플릿을 배포할 수 있습니다. 이 문서에서는 중첩된 템플릿을 사용하여 DevTest Labs 환경을 배포하는 방법을 설명합니다. 대상 지정, 용도별 템플릿 집합을 사용하여 환경을 배포하면 테스트, 재사용 및 가독성이 향상됩니다.
코드 샘플을 포함하여 중첩된 템플릿에 대한 일반적인 내용은 Azure 리소스를 배포할 때 연결된 템플릿 및 중첩된 템플릿 사용을 참조하세요.
참고 항목
배포 단계 및 애플리케이션 간에 엔터프라이즈 수준의 PaaS 리소스, 정책 및 보안 설정 또는 CI/CD 통합을 관리해야 하는 경우 ADE(Azure Deployment Environment)를 사용하여 환경을 만드는 것이 좋습니다. ADE를 사용하면 개발자가 프로젝트 기반 템플릿을 사용하여 앱 인프라를 신속하게 배포하여 개발 팀의 일관되고 안전한 환경을 보장할 수 있습니다. 자세한 내용은 Azure 배포 환경 설명서를 참조하세요.
중첩된 템플릿 배포
DevTest Labs에서 ARM 템플릿을 랩에 연결된 Git 리포지토리에 저장할 수 있습니다. 리포지토리 템플릿을 사용하여 환경을 만드는 경우 DevTest Labs는 중첩된 템플릿 파일을 비롯한 모든 템플릿 및 아티팩트 파일을 랩의 Azure Storage 컨테이너에 복사합니다.
중첩된 템플릿 배포에 대한 기본 azuredeploy.json 템플릿 파일은 개체를 사용하여 Microsoft.Resources/deployments 연결된 보조 템플릿을 호출합니다. 연결된 템플릿에 대한 URI 값을 제공하고 배포에 대한 SaS(공유 액세스 서명) 토큰을 생성합니다.
배포는 기본 템플릿 URI 및 SaS 토큰을 지정하는 Azure PowerShell New-AzResourceGroupDeployment 또는 Azure CLI az deployment group create를 사용합니다. 자세한 내용은 자습서: 연결된 템플릿 배포를 참조하세요.
중첩된 템플릿 예제
다음 예제 azuredeploy.json 기본 템플릿 파일은 중첩된 배포에 대한 코드를 보여줍니다. 기본 템플릿 파일은 중첩된 템플릿에 대한 링크를 정의합니다.
보조 템플릿의 링크 URI는 아티팩트 위치, 중첩된 템플릿 폴더, 중첩된 템플릿 파일 이름 및 아티팩트 SaS(공유 액세스 서명) 토큰 위치를 연결합니다. 보조 매개 변수 파일의 URI는 아티팩트 위치, 중첩된 템플릿 폴더, 중첩된 매개 변수 파일 이름 및 아티팩트 SaS 토큰 위치를 사용합니다.
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"_artifactsLocation": {
"type": "string"
},
"_artifactsLocationSasToken": {
"type": "securestring"
}},
"variables": {
"NestOneTemplateFolder": "nestedtemplates",
"NestOneTemplateFileName": "NestOne.json",
"NestOneTemplateParametersFileName": "NestOne.parameters.json"},
"resources": [
{
"name": "NestOne",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2016-09-01",
"dependsOn": [ ],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parametersLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateParametersFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
}
}
}],
"outputs": {}
관련 콘텐츠
- DevTest Labs 환경에 대한 자세한 내용은 ARM 템플릿을 사용하여 DevTest Labs 환경 만들기를 참조하세요.
- 코드 샘플을 포함하여 Visual Studio Azure 리소스 그룹 프로젝트 템플릿을 사용하는 방법에 대한 자세한 내용은 Visual Studio를 통해 Azure 리소스 그룹 만들기 및 배포를 참조하세요.