教程:将资源添加到 ARM 模板

上一教程中,你已了解如何创建和部署第一个空白 Azure 资源管理器模板(ARM 模板)。 现在,可以部署实际的资源到该模板。 在本案例中,是一个 Azure 存储帐户。 完成此说明需要 9 分钟。

先决条件

建议完成有关模板的简介教程,但这不是一项要求。

需要安装 Visual Studio Code 并与 Azure 资源管理器工具扩展以及 Azure PowerShell 或 Azure 命令行接口 (CLI) 一起使用。 有关详细信息,请参阅模板工具

添加资源

若要将 Azure 存储帐户定义添加到现有模板,请查看以下示例中突出显示的 JSON 文件。 可以复制整个文件并使用其内容替换模板,而无需尝试复制模板的各个节。

{provide-unique-name} 和大括号 {} 替换为唯一的存储帐户名称。

重要

存储帐户名称在 Azure 中必须是唯一的。 它只能为小写字母或数字,限制为 24 个字符。 可以使用 store1 之类的名称作为前缀,然后添加你的姓名首字母缩写和当天的日期。 例如,名称可以是 store1abc06132022。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "{provide-unique-name}",
      "location": "chinaeast",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

存储帐户的唯一名称不容易猜出,尤其是在大型部署的自动化中不太适合进行这种猜测。 稍后在本教程系列中,你将使用相应的模板功能来更轻松地创建唯一名称。

资源属性

你可能想要知道如何找到用于每种资源类型的属性。 可以使用 ARM 模板参考来查找要部署的资源类型。

部署的每个资源至少具有以下三个属性:

  • type:资源的类型。 此值是资源提供程序的命名空间和资源类型(例如 Microsoft.Storage/storageAccounts)的组合。
  • apiVersion:用于创建资源的 REST API 版本。 每个资源提供程序都发布了其自身的 API 版本,因此此值与特定的类型相关。
  • name:资源的名称。

大多数资源还有一个 location 属性,该属性用于设置部署资源的区域。

其他属性因资源类型和 API 版本而异。 了解 API 版本与可用属性之间的关联非常重要,因此,让我们直接了解详情。

在本教程中,你将添加一个存储帐户到模板。 可以在 storageAccounts 2021-09-01 中查看存储帐户的 API 版本。 请注意,你并未将所有属性添加到模板。 许多属性是可选的。 Microsoft.Storage 资源提供程序可能发布了新的 API 版本,但要部署的版本不需要更改。 可以继续使用该版本,部署的结果是一致的。

如果查看较旧的 API 版本,你会发现提供了一个较小的属性集。

如果你决定更改资源的 API 版本,请确保评估该版本的属性,并相应地调整模板。

部署模板

可以部署模板来创建存储帐户。 为部署指定不同的名称,以便可以在历史记录中轻松找到它。

如果尚未创建资源组,请参阅创建资源组。 此示例假设已根据第一篇教程中所述,将 templateFile 变量设置为模板文件的路径。

New-AzResourceGroupDeployment `
  -Name addstorage `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile

注意

如果部署失败,请使用 verbose 开关获取有关正在创建的资源的信息。 使用 debug 开关获取调试的详细信息。

这些错误是你可能遇到的两种可能的部署失败:

  • Error: Code=AccountNameInvalid; Message={provide-unique-name} 不是有效的存储帐户名称。 存储帐户名称长度必须为 3 到 24 个字符,并且只能使用数字和小写字母。

    在模板中,请将 {provide-unique-name} 替换为唯一的存储帐户名称。 请参阅添加资源

  • Error: Code=StorageAccountAlreadyTaken; Message=The storage account named store1abc09092019 已被使用。

    在模板中尝试使用其他存储帐户名称。

由于要创建存储帐户,所以此部署花费的时间长于空白模板部署。 可能需要大约 1 分钟。

验证部署

可以通过在 Azure 门户中浏览资源组来验证部署。

  1. 登录 Azure 门户
  2. 在左侧菜单中选择“资源组”。
  3. 选中 myResourceGroup 左侧的框,然后选择 myResourceGroup
  4. 选择已部署到的资源组。
  5. 可以看到,已部署了一个存储帐户。
  6. 请注意,部署标签现在显示:“部署: 2 个已成功”。

清理资源

若要继续学习下一篇教程,则不需删除该资源组。

如果你不打算继续学习,请删除该资源组以清理部署的资源。

  1. 在 Azure 门户上的左侧菜单中选择“资源组” 。
  2. 在“筛选任何字段…”框中键入资源组名称。
  3. 选中 myResourceGroup 旁边的框,然后选择 myResourceGroup 或所选的资源组名称。
  4. 在顶部菜单中选择“删除资源组”。

后续步骤

你已创建一个用于部署 Azure 存储帐户的简单模板。 在后面的教程中,你将了解如何向模板添加参数、变量、资源和输出。 这些功能是更复杂的模板的构建基块。