用于连续资源添加的Azure ARM模板

时间:2018-02-02 17:14:53

标签: azure templates azure-web-sites azure-resource-manager azure-template

我想澄清一下有关Azure ARM模板的以下差距:
我们建议我有一个包含以下内容的主模板:

App Service plan creation
Azure SQL server creation
SQL elastic pool creation (using previously created Azure SQL server)

此模板将用于初始创建我的云基础架构。

接下来,我将在我的主模板中添加一个子(嵌套或链接)模板 子模板将包含AppService Web App + SQL创建:

Web App creation (using App Service Plan defined in master template)
Azure SQL database creation (using Azure SQL server defined in master template)
Adding Azure SQL database to elastic pool (defined in master template)

我将省略一些细节,例如初始创建Azure Key Vault以及在此库中创建和存储所需的凭据,例如SQL管理员用户名\密码或我的Web应用程序的SSL证书。

因此,在模板部署执行结束时我想要的是:
first template deployment

  • 创建基本基础架构(Web应用程序的应用程序服务计划,添加到弹性池的SQL服务器)
  • 使用以前创建的应用服务计划和弹性池(将放置我的SQL数据库)的应用服务(Web应用+ SQL)的单个实例

second template deployment

  • 将使用现有基础架构创建应用服务(Web应用+ SQL)的单个(第二个)实例

N-template deployment

  • 将部署单个(N实例)应用服务(网络应用+ SQL)< ...>

问题是:

  • 我应该使用嵌套模板还是链接模板?我案件的确切区别是什么?
  • 我的整体解决方案是正确的还是我应该修改它?找到另一种方法?

我已经找到了following post的说法,例如,我可以使用资源锁定(以防止删除)或使用增量模式进行部署(以保留现有资源)但是,这不能回答我的问题关于整个方法。

1 个答案:

答案 0 :(得分:0)

嵌套\链接模板可以互换使用。这是同一件事。有人可能会争辩说嵌套模板是内联模板并且链接实际上是链接的,但它并不重要,两者都是相同的(它们在模板中实现的方式略有不同,但结果是相同的)。子模板(这就是你想要的那些模板)。

至于实际问题:

  1. 为什么要使用子模板?我没有看到那些用例。
  2. 除了使用子模板只是为了使用它们之外,我没有看到该方法有任何问题。
  3. 如果您希望您的方法是“模块化的”(因此使用子模板),您也可以使用配置和实现分离来实现结果(DRY方法)。