В шаблонах Azure Resource Manager (ARM) есть возможность использовать Связанные шаблоны. Эти связанные шаблоны могут определять дополнительные ресурсы для создания во время развертывания шаблона ARM.
Шаблоны ARM поддерживают зависимости, которые обеспечивают использование некоторых ресурсов создаются раньше других.
Я хотел бы указать зависимость в связанном шаблоне для ресурса, созданного в главном шаблоне. Если я включу зависимость в связанный шаблон, это будет выглядеть так:
"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')]"
}
}
]
Хотя dependsOn
выглядит правильным, ресурс создается в Microsoft.Web/sites/{siteNameParameter}
, при развертывании шаблона ARM выводится следующее сообщение об ошибке:
InvalidTemplate: Ошибка проверки шаблона развертывания: «Ресурс« Microsoft.Web / sites / blahblahblahblah »не определен в шаблоне. Подробную информацию об использовании см. На странице https://aka.ms/arm-template. '.
В настоящее время я определяю эту зависимость в шаблоне master, когда определяю вызов связанного шаблона. Он кажется хрупким и легко ломается. Есть ли лучший способ, чем определение зависимостей в главном шаблоне 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')]"
}
}
}
}