了解模板规格

已完成

现在,你已习惯使用 Bicep 或 JSON 将 Azure 资源管理器模板(ARM 模板)部署到 Azure。 创建模板文件,然后通过创建部署将其提交到 Azure。 Azure 资源管理器协调资源的创建或重新配置。

使用模板规格时,仍会将模板发送到 Azure。 但是,Azure 会保存它供将来使用,而不是部署它。 然后,可以稍后返回并告诉 Azure 部署模板规格。甚至可以重复使用相同的模板规格来部署更多环境。

为什么使用模板规格?

在玩具公司,你创建了大量可重用模板,包括:

模板名称 DESCRIPTION
存储帐户 部署存储帐户并强制Microsoft Entra 身份验证。
Cosmos DB 帐户 部署启用了连续备份的 Azure Cosmos DB 帐户。
虚拟网络 部署具有正确配置的虚拟网络,以与主中心网络对等互连。
产品发布网站 为主要用于发布新玩具产品的网站部署 Azure 应用服务计划、应用和存储帐户。

模板规格是为组织中的常见方案创建可重用 ARM 模板库的好方法。 专家可以使用预配置的资源或一组资源生成模板。 然后,该专家可以将其发布为模板规格,从而使组织中的其他人能够部署它。

可以使用模板规格来确保团队创建的资源根据你的要求进行配置。 例如,可以发布模板规格,如前面所述的存储帐户模板。 然后,每当组织中的任何人部署模板规格时,都可以确保他们创建具有正确身份验证设置的存储帐户。

模板规格存储在 Azure 中,因此无需自行维护共享模板文件。 可以通过 Azure 基于角色的访问控制来管理谁可以使用和修改模板规格。 如果没有模板规格,则需要选择存储位置(如 Azure 存储)来保留模板文件。 还需要自行控制访问权限。

模板规格如何与 Bicep 模块进行比较?

使用 Bicep 时,可以创建可重用 模块 来定义单个文件中的资源集。 模板规格和 Bicep 模块都是向模板添加可重用性的方法,但它们针对不同的内容进行优化:

  • 模板规格旨在可作为完整模板进行部署。 可以使用 Azure 门户和工具(如 Azure CLI 和 Azure PowerShell)部署模板规格。 Bicep 模块旨在被合并至较大的部署中。 但是,如果你创建模板规格,Bicep 还支持将模板规格用作模块(如果需要)。
  • 模板规格提供版本控制和访问控制功能。 你需要自行管理 Bicep 代码的版本和安全性。
  • 模板规格以资源的形式存储在 Azure 中。 需要将 Bicep 模块存储在所控制的某个位置,例如 Git 或文件系统等版本控制系统。
  • Bicep 模块保留所有原始 Bicep 代码,包括注释、符号名称和空格。 使用 Bicep 创建模板规格时,Bicep 代码将转换为 JSON,其中一些信息将丢失。 因此,还需要将源 Bicep 文件保留在其他位置。

在模板规格和 Bicep 模块之间做出决策时,一条很好的经验法则是:如果模板将按原样在整个组织中进行部署,则模板规格可能是更好的选择。 但如果可能在多个父模板中重复使用此模板,Bicep 模块应该更能满足你的需求。

模板规格的工作原理

模板规格是一种 Azure 资源,就像存储帐户或虚拟机一样。 必须在资源组中创建它,尽管模板本身可以将资源部署到订阅、管理或租户范围。

使用模板规格时,将创建两个资源:

  • 模板规格是容器资源。 它包含一个或多个版本。
  • 模板规格版本 包含要部署的实际模板。

通过使用模板规格和版本的资源 ID 来使用它们。 下面是一个模板规格的资源 ID 示例:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS

版本是模板规格的子资源。其资源 ID 类似于以下示例:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0

部署模板规格时,需要指定模板规格版本的资源 ID。

下面是使用模板规格时所遵循的工作流的插图:

展示使用模板规格的工作流的关系图。

采用与以前一样的方式创建一个模板。 为模板规格创建的模板没有什么特别之处。声明资源、创建参数和变量、使用函数等。

模板准备就绪后,可以创建模板规格资源。 然后,将模板以一个版本的形式发布到模板规格。 用于创建模板规格的工具使你可以在一个作中执行这些步骤。 发布模板规格后,模板规格以资源的形式存储在 Azure 中。 可以像管理任何其他 Azure 资源一样,对它进行查看、编辑和控制访问。 可以从本地计算机或部署管道发布模板规格。

每当要部署模板规格时,都可以从部署中引用模板规格版本的资源 ID。 可以将它部署到任何资源组,甚至部署到其他订阅或范围。 Azure 读取模板规格,并将其用作部署的模板。