ARM 模板:取决于——您指的是链接的 "Microsoft.Resources/deployments" 还是其中创建的资源?

ARM Templates: depends on -- do you refer to the linked "Microsoft.Resources/deployments" or the resources created within it?

我有一个父 ARM 模板(例如:myapp.assembly.json)调用链接的子 ARM 模板(web.serverFarm.json、web.site.json 等)

目前我已经通过放置 dependsOn

定义了链接子模板之间的关系

我期待:

  • 任何为另一个 Microsoft.Resources/deployments 定义了 dependsOnMicrosoft.Resources/deployments 将等到创建所有这些资源。

我认为我正在观察的是:

  • 第一次ARM模板是运行,报部署失败...正在寻找依赖...
  • 但继续工作...所以不能立即重新部署...
  • 第二次,构建资源,部署完成。

我完全有可能漏掉了一个 dependsOn——虽然我真的看过但不这么认为——或者 dependsOn 没有像我想的那样得到尊重有所期待。

如有任何建议,我们将不胜感激。

谢谢。

啊! 谢谢@ 4c74356b41 和@bmoore-msft ...你是绝对正确的(它就在我的鼻子前面了令人尴尬的几天:-( )

我必须 copy/pasted 从子资源模板到父程序集模板。

"webSiteConfigAppSettingsApplicationInsightsInstrumentationKey": {
  // FIX: Rely on the template instead of direct:"value": "[reference(resourceId('Microsoft.Insights/components', variables('insights').components.resourceName), '2015-05-01').InstrumentationKey]"
  "value": "[reference(variables('insights').components.armTemplateId).outputs.instrumentationKey.value]"
}

即: 我需要引用模板及其输出。 不是在模板 创建的资源...父模板看不到。

现在一切都像黄油一样顺利。