本文解答有关 Azure 资源管理器模板(ARM 模板)的常见问题。
ARM 模板是 JSON 文件,可在其中定义要部署到 Azure 的内容。 模板可帮助你实现 Azure 的基础结构即代码解决方案。 组织可以重复并可靠地将所需基础结构部署到不同的环境。
若要详细了解 ARM 模板如何帮助管理 Azure 基础结构,请参阅什么是 ARM 模板?
若要简化 ARM 模板的创作,需要合适的工具。 我们建议安装 Visual Studio Code 和 Azure 资源管理器工具扩展。 有关这些工具的简要介绍,请参阅快速入门:使用 Visual Studio Code 创建 ARM 模板。
准备好学习如何创建 ARM 模板时,请开始学习有关 ARM 模板的初学者教程系列。 这些教程指导你逐步完成构造 ARM 模板的过程。 你将了解模板的不同部分以及它们的协作方式。
可使用你最喜欢的选项。 这两项服务都可帮助你自动部署到 Azure。
我们认为,使用 ARM 模板比使用其他基础结构即代码服务更加有益。 若要了解这些优势,请参阅为什么选择 ARM 模板?
是的,可随时观看。
有关实现模板的建议,请参阅 ARM 模板的最佳做法。 创建模板后,运行 ARM 测试工具包。 它检查模板是否符合建议的做法。
是的,你可以从资源组导出模板。 导出的模板是了解模板的良好起点,但你可能想要在将其用于生产环境之前对其进行修订。
导出模板时,可以选择要包含在模板中的资源。
是的,当你在 Azure 订阅级别部署模板时,可以在模板中创建资源组。 有关创建资源组和部署资源的示例,请参阅资源组和资源。
建议在部署模板之前,在其上运行 ARM 测试工具包和 what-if 操作。 测试工具包将检查模板是否使用最佳做法。 它在识别到可改进模板实现方式的更改时提供警告。
What-if 操作显示模板对环境所做的更改。 在部署之前,可以看到意外的更改。 What-if 操作还会返回预检验证期间可以检测到的任何错误。 例如,如果模板中包含语法错误,则会返回该错误。 它还会返回任何可以确定已部署资源的最终状态的错误。 例如,如果模板使用已在使用中的名称部署存储帐户,What-if 操作会返回该错误。
VS Code 提供了用于处理资源属性的 Intellisense。
要了解有关新语言的信息,请参阅什么是 Bicep(预览版)?。
目前没有支持 YAML 的计划。 我们相信,新模板语言将提供比 YAML 或 JSON 更易于使用的解决方案。
是的,你可以继续使用 JSON 模板。
是的。 请参阅在 JSON 和 Bicep 之间转换 ARM 模板。
Azure 蓝图通过将 blueprint definition
资源替换为 template spec
资源在其实现中使用模板规格。 我们会提供迁移路径,以将蓝图定义转换为模板规格,但仍支持蓝图定义 API。 没有对 blueprint assignment
资源进行更改。 蓝图仍是在 Azure 中构建受治理环境的用户体验。
不会,但模板规格设计为可与链接模板一起使用。 在部署父模板之前,无需将链接模板移动到可公开访问的终结点。 而是在创建模板规格时,将父模板及其项目打包在一起。
可以,只要用户具有对模板规格的读取访问权限,就可以跨订阅使用它们。不能跨租户使用模板规格。
可以,请使用部署脚本。 可在模板中包含 Azure PowerShell 或 Azure CLI 脚本。
这些选项仍可用且未发生更改。 部署脚本旨在执行与 VM 来宾无关的操作。 如果需要在 VM 中的主机操作系统上运行脚本,客户脚本扩展和/或 DSC 将是更好的选择。 但部署脚本具有一些优势,例如可设置超时持续时间。
是,当前可以在 Azure 中国世纪互联的 China East 2
区域中使用部署脚本。
可以,使用 what-if 功能。 它会评估环境的当前状态,并将其与部署后存在的状态进行比较。 你可以检查汇总的更改,以确保模板没有任何意外的结果。
可以,两种部署模式均受支持。 有关使用增量模式的示例,请参阅运行 what-if 操作。 有关使用完全模式的示例,请参阅确认删除。
适用,what-if 可评估父模板及其链接模板的状态。
可以,你可以使用 what-if 来验证管道是否应继续。
我们正在努力减少干扰信息。 请在此处的 GitHub 存储库中提交问题,以帮助我们改进: https://aka.ms/WhatIfIssues
我们有一个社区提供的 VS Code 扩展,它可以很好地可视化 ARM 模板。 该扩展显示了要部署的资源以及它们之间的关系。
可在门户中预览模板可视化工具。 有关详细信息,请观看此 Build 的简短会话。
过去,此限额为五个资源组。 最近已增加到 800 个资源组。 有关详细信息,请参阅在订阅级别创建资源组和资源。
我们正在更改资源组部署历史记录的维护方式。 过去,必须手动从此历史记录中删除部署才能避免此错误。 从 2020 年 6 月开始,我们将在你接近限额时自动从历史记录中删除部署。 有关详细信息,请参阅从部署历史记录中自动删除。
从历史记录中删除部署不会影响已部署的资源。
是的。 有关使用模板和管道的说明,请参阅教程:使用 Azure Pipelines 持续集成 ARM 模板和将 ARM 模板与 Azure Pipelines 集成。
可以,请参阅使用 GitHub Actions 部署 ARM 模板。
有关 ARM 模板的简介,请参阅什么是 ARM 模板?。