了解模板规格
现在,你已习惯使用 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 读取模板规格,并将其用作部署的模板。