Azure Resource Manager (ARM) 템플릿은 Linked Templates을 사용할 수 있습니다. 이러한 링크 된 템플릿은 ARM 템플릿 배포 중에 만들 수있는 추가 리소스를 정의 할 수 있습니다.Azure Resource Manager에서 종속성 처리 링크 된 템플릿
ARM 템플릿은 dependencies을 지원하므로 일부 리소스가 생성되기 전에 다른 리소스가 만들어 지도록합니다.
마스터 템플릿에서 생성 된 리소스의 링크 된 템플릿에 종속성을 지정하고 싶습니다. dependsOn
이 올바른 것처럼 보이지만
"resources": [
{
"apiVersion": "2015-08-01",
"type": "Microsoft.Web/sites/hostNameBindings",
"name": "[concat(parameters('siteName'),'/', parameters('fqdn'))]",
"dependsOn": [
"[concat('Microsoft.Web/sites/', parameters('siteName'))]"
],
"properties": {
"siteName": "[parameters('siteName')]"
}
}
]
의 자원이 ARM 템플릿을 배포 Microsoft.Web/sites/{siteNameParameter}
에서 생성되는 출력 다음과 같은 오류 메시지가 :
내가 링크 된 템플릿의 종속성을 포함하는 경우는 다음과 같습니다InvalidTemplate : 배포 템플릿 유효성 검사가 실패했습니다 : ''Microsoft.Web/sites/blahblahblahblah '리소스가 템플릿에 정의되어 있지 않습니다. 자세한 사용법은 https://aka.ms/arm-template을 참조하십시오. '.
현재 연결된 템플릿 호출을 정의 할 때 마스터 템플릿에서이 종속성을 정의하고 있습니다. 이것은 부서지기 쉽고 부서지기 쉬운 것처럼 보입니다. 마스터 ARM 템플릿에서 종속성을 정의하는 것보다 나은 방법이 있습니까?
{
"apiVersion": "2015-01-01",
"name": "SomeName",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"[concat('Microsoft.Web/sites/', parameters('siteName'))]"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "https://tempuri.org/supersecrettemplatepath/azuredeploy.json",
"contentVersion": "1.0.0.0"
},
"parameters":
{
"fqdn": {
"value": "www.tempuri.org"
},
"siteName": {
"value": "[parameters('siteName')]"
}
}
}
}
재미있는! 나는 이것을 굴려야 할 것이다. resourceGroup(). name은 기본적으로 모든'dependsOn' 호출에 자동으로 채워 져야한다는 것을 이해하고 있습니다. 중첩 된 템플릿의 경우가 아닙니까? –
정렬 - 제공되지 않으면 동일한 템플릿에 있다고 가정합니다. 실제로 중첩 된 템플릿은 AzureRM의 개별/독립 배포입니다. –
유감스럽게도 이전과 같은 오류 메시지가 출력됩니다. '''배포 템플릿 유효성 검사에 실패했습니다 : ''Microsoft.Web/sites/somesite '리소스가 템플릿에 정의되어 있지 않습니다. "'' –