了解模板规格
现在,你将使用 Bicep 或 JSON 将 Azure 资源管理器模板(ARM 模板)部署到 Azure。 你将创建一个模板文件,然后通过创建部署将其提交到 Azure。 Azure 资源管理器会协调资源的创建或重新配置。
你在处理模板规格时,依然是将模板发送到 Azure。 但 Azure 不会对其进行部署,而是将其保存,以便将来使用。 然后,可以稍后返回并让 Azure 部署模板规格。你甚至可以重复使用相同的模板规格来部署更多环境。
为什么使用模板规格?
在玩具公司,你已经创建了许多可重用的模板,包括:
模板名称 | 说明 |
---|---|
存储帐户 | 部署存储帐户并强制实施 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 读取模板规格,并将其用作部署模板。