-1

我想澄清有关 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 的初始创建以及在此保管库中创建和存储所需的凭据,例如我的 Web 应用程序的 SQL 管理员用户名\密码或 SSL 证书。

所以,我想要在模板部署执行结束时拥有的是:
first template deployment

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

second template deployment

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

N-template deployment

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

问题是:

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

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

4

1 回答 1

0

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

至于实际问题:

  1. 为什么要使用子模板?我没有看到这些用例。
  2. 除了为了使用子模板而使用子模板之外,我认为该方法没有任何问题。

如果您希望您的方法是“模块化的”(因此使用子模板),您也可以使用配置和实现分离来实现结果(DRY方法)。

于 2018-02-02T17:53:31.107 回答