Azure ARM模板-处理ARM模板之间的依赖关系

时间:2019-11-18 08:38:52

标签: azure azure-devops azure-resource-manager

我有各种天蓝色的资源,例如虚拟网络,其模板包含该VNET内的子网详细信息,网络安全组的模板(与不同子网相关联),每个子网内的虚拟机模板。 现在我有3个不同的json文件,分别对应每种资源类型(子网,NSG,VM)。 我想自动执行此堆栈创建操作,因此我应该如何在交叉json文件模板之间添加依赖关系或实现此目的的任何其他方法。就像在创建VNET之后->将创建NSG->将创建VM

3 个答案:

答案 0 :(得分:1)

例如,在尝试部署SQL数据库之前,必须存在SQL服务器。通过将一个资源标记为依赖于另一资源来定义此关系。您可以使用 dependsOn 元素或使用 reference 函数来定义依赖项。

关注此文档,并对此进行讨论。定义Azure资源管理器模板中的资源部署顺序

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-define-dependencies#dependson

答案 1 :(得分:0)

您需要查看链接或嵌套模板。使用链接模板时,将创建一个主模板以在部署期间接受参数。然后,主模板引用链接的模板(在您的情况下为VM,NSG和VNET),并根据需要将值传递给这些模板。您可以设置链接模板和其他资源之间的依赖关系。您可以找到此here

的示例

答案 2 :(得分:0)

我总是建议深入了解维护良好的github存储库中的101个ARM模板:

https://github.com/Azure/azure-quickstart-templates

和一种不错的索引GUI

还有一个不错的best practices文档需要处理。

一个不错的可视化工具,您将在这里:http://armviz.io

还请确保您不从现有解决方案的Azure产品中下载ARM模板开始,这会很快导致我的经验混乱。

检查漂亮的VS Code扩展名,以帮助在ARM模板JSON中导航(以及如果您喜欢像armviz.io那样进行可视化)