在本次文章中我们将介绍创建 ARM 模板的相关基础概念,为了帮助大家更好地理解,我们将以实例的方式进行介绍。
模板编辑常用工具
工欲善其事,必先利其器。虽然 ARM 的 JSON 模板可以直接使用 Notepad 进行编辑,不过实在难用。为了方便大家进行代码高亮编辑,我们先推荐几个实用的 ARM 模板编辑工具。
Visual Studio
Visual Studio 与 Azure SDK 配合即可成为创建和开始使用 ARM 模板的简便方法,我们可以用 VS 创建「资源组」并按资源类型和属性自动(智能感知)生成 JSON。
了解更多信息可以阅读使用 Visual Studio 创建 ARM 模板。
Visual Studio Code
Visual Studio Code (VScode) 是微软推出的开源跨平台代码编辑器,它同时支持 Windows/Linux 及 Mac OS X 平台。相较 Visual Studio 更为轻量,也非常容易使用。VScode 也自动识别 ARM 前导码中的 Schema 和自动补全功能。
Sublime Text
Sublime Text 是我最常用的一款代码编辑器,它也支持 Windows/Linux 及 Mac OS X 跨平台版本。虽然不是免费应用,但其价格和扩展功能完全对得起它的价格。Sublime Text 用户可以使用 Azure Resource Manager package 快速完成 ARM 模板的创建,例如:在激活 ARM package 扩展之后,可以执行 arm:t 和 Tab 键来直接新建 ARM 模板的骨架。
虽然很多编辑器和 IDE 都提供 JSON 支持,但有条件的话还是推荐大家使用 Visual Studio。
ARM模板语言基础
我们已经多次提到过,ARM 模板基于 JSON 语法。因此要了解 ARM 模板的创建方式,必需要知道 JSON 是如何工作的。下面是一个 ARM 模板的基本结构:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "",
"parameters": { },
"variables": { },
"resources": [ ],
"outputs": { }
}
$schema
在 ARM 资源模板中必需引用 $schema 这个资源模板的 Schema,它是在部署资源时所要用到的 Schema,后面的资源创建都会按这个格式进行。你可以在 https://github.com/Azure/azure-resource-manager-schemas/ 查看到最新的 Schema URL。
ContentVersion
这也是一个强制性元素,它用以指定要创建的资源模板版本。我个人建议大家使用源控制来自动更新该元素,而不是手动输入来指定版本。
Parameters(参数)
任何编程语言都有参数,参数用于提供功能/方法的灵活性,而不是硬编码特定值。ARM 模板也可以直接参数化进行交互,管理员可以通过传参的方式(在正式部署之前)定义要部署的资源类型、属性等操作。
Variables(变量)
变量也跟其它编程语言一样,可以帮助我们简化模板语言。例如,你可以使用变量来存储不同资源属性,并在适用的地方进行重用(多次引用)。此外,在 ARM 模板语言内,变量可用于在运行时构建值。
Resources(资源)
资源也是 ARM 模板中的强制元素,它用于定义要部署的资源集合(数组),在创建资源时可以引用参数和变量。对于定义资源集合中的每个资源类型时,也有一定的子元素标准,如:name、type、apiVersion、location 及 properties 等。
Outputs(输出)
输出非常容易理解,它可以从部署的资源返回数据和对象。例如:你部署了一个Web App,可以在部署完成后返回网站的部署状态和 URL。当然,也可以将输出传导到模板中用于其它资源创建时的输入,这样即可完成复杂的资源模板构建。
函数和表达式
例如,你想在运行时构建资源属性值,可能需要连接字符串的支持。除了我们上面介绍的六大要素,ARM 模板语法还支持不同的函数和表达式以简化部署。
最新评论
可以共存,但虚拟机维护起来更麻烦了呀。
关掉之后重启下系统再试试呢
不能共存吗?
我是家庭版,看着关掉了,但是破解程序一运行还是弹窗,搞不了