다음을 통해 공유

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

上一教程中,你学习了如何创建和部署第一个空白 Azure 资源管理器模板(ARM 模板)。 现在,你已准备好将实际资源部署到该模板。 在本例中,一个 Azure 存储帐户。 此说明需要 9 分钟 才能完成。

先决条件

建议完成 有关模板的介绍性教程,但这不是必需的。

需要具有 Visual Studio Code,以及 Azure PowerShell 或 Azure Command-Line 接口(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 已被占用。

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

此部署花费的时间比空白模板部署更长,因为要创建存储帐户。 可能需要大约一分钟的时间。

验证部署

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

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

清理资源

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

如果现在停止,可能需要通过删除资源组来清理部署的资源。

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

后续步骤

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