系统极客一直在努力
专注于操作系统及软件使用教程

创建Azure Resource Manager模板 – 2.基础

Azure Resource Manager

在本次文章中我们将介绍创建 ARM 模板的相关基础概念,为了帮助大家更好地理解,我们将以实例的方式进行介绍。

模板编辑常用工具

工欲善其事,必先利其器。虽然 ARM 的 JSON 模板可以直接使用 Notepad 进行编辑,不过实在难用。为了方便大家进行代码高亮编辑,我们先推荐几个实用的 ARM 模板编辑工具。

Visual Studio

Visual Studio 与 Azure SDK 配合即可成为创建和开始使用 ARM 模板的简便方法,我们可以用 VS 创建「资源组」并按资源类型和属性自动(智能感知)生成 JSON。

Visual Studio

了解更多信息可以阅读使用 Visual Studio 创建 ARM 模板

Visual Studio Code

Visual Studio Code (VScode) 是微软推出的开源跨平台代码编辑器,它同时支持 Windows/Linux 及 Mac OS X 平台。相较 Visual Studio 更为轻量,也非常容易使用。VScode 也自动识别 ARM 前导码中的 Schema 和自动补全功能。

Visual Studio Code

Sublime Text

Sublime Text 是我最常用的一款代码编辑器,它也支持 Windows/Linux 及 Mac OS X 跨平台版本。虽然不是免费应用,但其价格和扩展功能完全对得起它的价格。Sublime Text 用户可以使用 Azure Resource Manager package 快速完成 ARM 模板的创建,例如:在激活 ARM package 扩展之后,可以执行 arm:tTab 键来直接新建 ARM 模板的骨架。

Sublime Text

虽然很多编辑器和 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 模板语法还支持不同的函数和表达式以简化部署。

分享到:更多 ()