Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы развернуть ресурс при помощи шаблона Azure Resource Manager (шаблон ARM), следует добавить объявление ресурса.
resources
Используйте массив в шаблоне JSON.
LanguageVersion 2.0 делает список улучшений шаблонов JSON ARM, таких как изменение объявления ресурсов из массива в объект. Большинство примеров, показанных в этой статье, по-прежнему используют resources
массив. Сведения о языковой версии 2.0 см. в разделе Использование символьного имени.
Замечание
Текущий выпуск расширения средств Azure Resource Manager для Visual Studio Code не распознает улучшения, внесенные в languageVersion 2.0.
Подсказка
Мы рекомендуем использовать Bicep, так как он предоставляет те же возможности, что и шаблоны ARM, и имеет более простой синтаксис. Дополнительные сведения см. в объявлении ресурсов.
В шаблоне ограничено 800 ресурсов. Дополнительные сведения см. в разделе Ограничения шаблона.
Установка типа ресурса и версии
При добавлении ресурса в шаблон начните с задания типа ресурса и версии API. Эти значения определяют другие свойства, доступные для ресурса.
В следующем примере показано, как задать тип ресурса и версию API для учетной записи хранения. В примере не отображается полное объявление ресурса.
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
...
}
]
Установить имя ресурса
У каждого ресурса есть имя. При задании имени ресурса обратите внимание на правила и ограничения для имен ресурсов.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
...
}
]
Установить местоположение
Для многих ресурсов требуется расположение. Вы можете определить, требуется ли ресурсу расположение с помощью intellisense или ссылки на шаблон. В следующем примере добавляется параметр расположения, используемый для учетной записи хранения.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
...
}
]
Дополнительные сведения см. в разделе Задание расположения ресурса в шаблоне ARM.
Настройка тегов
Теги можно применить к ресурсу во время развертывания. Теги помогают логически упорядочивать развернутые ресурсы. Примеры различных способов указания тегов см. в тегах шаблона ARM.
Задание свойств, относящихся к ресурсу
Предыдущие свойства являются универсальными для большинства типов ресурсов. После задания этих значений необходимо задать свойства, относящиеся к типу ресурса, который вы развертываете.
Используйте intellisense или ссылку на шаблон, чтобы определить, какие свойства доступны и какие необходимы. В следующем примере задаются оставшиеся свойства для учетной записи хранения.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
Использование символьного имени
В Bicep каждое определение ресурса имеет символическое имя. Символьное имя используется для ссылки на ресурс из других частей файла Bicep. Для поддержки символьного имени в шаблонах JSON ARM добавьте languageVersion
с версией 2.0
, и измените определение ресурса из массива на объект. При указании languageVersion
для шаблона необходимо указать символьное имя на ресурсы корневого уровня. Рассмотрим пример.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
...
}
]
}
Предыдущий код JSON можно записать в следующий код JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"resources": {
"aks": {
"type": "Microsoft.ContainerService/managedClusters",
...
}
}
}
Символьные имена чувствительны к регистру. Допустимые символы для символьных имен — буквы, цифры и _. Символьные имена должны быть уникальными в шаблоне, но могут перекрываться именами переменных, именами параметров и именами выходных данных в шаблоне. В следующем примере символическое имя ресурса учетной записи хранения имеет то же имя, что и выходные данные.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": {
"myStorage": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
},
"outputs": {
"myStorage":{
"type": "object",
"value": "[reference('myStorage')]"
}
}
}
Референтная функция может использовать символическое имя ресурса, как показано в предыдущем примере. Ссылочная функция больше не может использовать имя ресурса, например reference(parameters('storageAccountName'))
, не допускается.
Если Deployments resource используется в развертывании с символьным именем, используйте apiVersion 2020-09-01
или более позднюю версию.
Объявление существующих ресурсов
Используя languageVersion 2.0
и символьное имя для объявления ресурсов, можно объявить существующие ресурсы. Свойство верхнего уровня "existing": true
заставляет ARM считывать ресурс вместо его развертывания, как показано в следующем примере:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"languageVersion": "2.0",
"resources": {
"storageAccount": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "storageacct",
"existing": true
}
},
"outputs": {
"saBlocksPlaintext": {
"type": "bool",
"value": "[ reference('storageAccount').supportsHttpsTrafficOnly]"
}
}
}
Существующие ресурсы не должны определять какие-либо свойства, кроме type
, apiVersion
и name
.
Дальнейшие шаги
- Сведения об условном развертывании ресурса см. в разделе "Условное развертывание" в шаблонах ARM.
- Сведения о настройке зависимостей ресурсов см. в разделе "Определение порядка развертывания ресурсов в шаблонах ARM".