您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

ARM 模板中的数据类型

本文介绍 Azure 资源管理器模板(ARM 模板)中支持的数据类型。

支持的类型

在 ARM 模板中,可以使用以下数据类型:

  • array
  • bool
  • int
  • object
  • secureObject
  • secureString
  • string

数组

数组以左中括号 ([) 开头,以右中括号 (]) 结尾。 数组可以在一行或多行中声明。 每个元素用逗号隔开。

"parameters": {
  "exampleArray": {
    "type": "array",
    "defaultValue": [
      1,
      2,
      3
    ]
  }
},

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('exampleArray')]"
  },
  "firstExampleArrayElement": {
    "type": "int",
    "value": "[parameters('exampleArray')[0]]"
  }
}

数组的元素可以是同一类型,也可以是不同类型。

"variables": {
  "mixedArray": [
    "[resourceGroup().name]",
    1,
    true,
    "example string"
  ]
}

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('mixedArray')]"
  },
  "firstMixedArrayElement": {
    "type": "string",
    "value": "[variables('mixedArray')[0]]"
  }
}

布尔型

指定布尔值时,请使用 truefalse。 不要将值用引号括起。

"parameters": {
  "exampleBool": {
    "type": "bool",
    "defaultValue": true
  }
},

整数

指定整数值时,请勿使用引号。

"parameters": {
  "exampleInt": {
    "type": "int",
    "defaultValue": 1
  }
}

对于作为内联参数传递的整数,值的范围可能受限于用于部署的 SDK 或命令行工具。 例如,使用 PowerShell 部署模板时,整数类型的范围可能为 -2147483648 到 2147483647。 为了避免此限制,请在参数文件中指定大的整数值。 资源类型会针对整数属性应用其自己的限制。

对象

对象以左大括号 ({) 开头,以右大括号 (}) 结尾。 对象中的每个属性都包含 keyvaluekeyvalue 用双引号括起来并由冒号 (:) 分隔。 每个属性用逗号隔开。

"parameters": {
  "exampleObject": {
    "type": "object",
    "defaultValue": {
      "name": "test name",
      "id": "123-abc",
      "isCurrent": true,
      "tier": 1
    }
  }
}

字符串

字符串用双引号进行标记。

"parameters": {
  "exampleString": {
    "type": "string",
    "defaultValue": "test value"
  }
},

安全字符串和对象

安全字符串使用与字符串相同的格式,安全对象使用与对象相同的格式。 将参数设置为安全字符串或安全对象时,参数的值不会保存到部署历史记录中,也不会记入日志。 但是,如果将该安全值设置为不应为安全值的属性,则该值不会受到保护。 例如,如果将安全字符串设置为标记,则该值将以纯文本的形式存储。 使用安全字符串作为密码和机密。

以下示例显示了两个安全参数。

"parameters": {
  "password": {
    "type": "secureString"
  },
  "configValues": {
    "type": "secureObject"
  }
}

后续步骤

要了解模板语法,请参阅了解 ARM 模板的结构和语法