【问题标题】:Azure ARM template - Handling dependencies among ARM templateAzure ARM 模板 - 处理 ARM 模板之间的依赖关系
【发布时间】:2020-03-13 14:12:59
【问题描述】:

我有各种 azure 资源,例如虚拟网络,其模板包含该 VNET 中的子网详细信息,网络安全组的模板,与不同的子网相关联,每个子网中的虚拟机模板。 现在我有 3 个不同的 json 文件,用于对应于每种资源类型(子网、NSG、VM)的模板。 我想自动化这个堆栈创建,所以我应该如何在跨 json 文件模板或任何其他方式之间添加依赖关系来实现这一点。就像在创建 VNET 之后——> 将创建 NSG——> 将创建 VM

【问题讨论】:

  • 无法获取您的最新信息,以下解决方法对您有帮助吗?或者,如果您有任何疑问,请随时在此处分享。

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


【解决方案1】:

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

关注此文档,讨论此问题定义在 Azure 资源管理器模板中部署资源的顺序

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      还有一个不错的索引GUI:

      还有一个不错的 best practices 文档可供阅读。

      你会在这里看到一个很好的可视化:http://armviz.io

      另外,请确保不要从现有解决方案的 Azure protal 下载的 ARM 模板开始,根据我的经验,这很快会导致混乱。

      查看漂亮的 VS Code 扩展以帮助在 ARM 模板 JSON 中导航(如果您喜欢像 armviz.io 一样进行虚拟化)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-11
        • 1970-01-01
        • 1970-01-01
        • 2016-12-03
        相关资源
        最近更新 更多