Разверните спецификацию шаблона
После создания и публикации спецификации шаблона вы можете его развернуть. В этом уроке вы узнаете о способах развертывания спецификации шаблона.
Создание развертывания с помощью спецификации шаблона
Чтобы развернуть спецификацию шаблона в группе ресурсов, используйте тот самый командлет New-AzResourceGroupDeployment
, с которым вы знакомы. Вместо указания файла шаблона укажите идентификатор ресурса спецификации шаблона, как показано в этом примере:
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'
Хотя спецификации шаблонов необходимо создать в группе ресурсов, их можно развернуть в подписках, группах управления или даже клиентах с помощью этих командлетов:
Чтобы развернуть в этой области, выполните указанные ниже действия. | Используйте этот командлет PowerShell: |
---|---|
Группа ресурсов | New-AzResourceGroupDeployment |
Подписка | New-AzSubscriptionDeployment |
Группа управления | New-AzManagementGroupDeployment |
Съёмщик | New-AzTenantDeployment |
Каждый из этих командлетов принимает параметр -TemplateSpecId
для запуска развертывания спецификации шаблона в одной из этих областей.
Чтобы развернуть спецификацию шаблона в группе ресурсов, используйте ту же команду az deployment group create
, с которой вы знакомы. Вместо указания файла шаблона укажите идентификатор ресурса спецификации шаблона, как показано в этом примере:
az deployment group create \
--template-spec "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"
Хотя спецификации шаблонов необходимо создать в группе ресурсов, их можно развернуть в подписках, группах управления или даже клиентах с помощью следующих команд:
Чтобы развернуть в этом масштабе, следуйте этим шагам. | Выполните следующую команду Azure CLI: |
---|---|
Группа ресурсов | az deployment group create |
Подписка | az deployment sub create |
Группа управления | az deployment mg create |
Съёмщик | az deployment tenant create |
Каждая из этих команд принимает аргумент --template-spec
для запуска развертывания спецификации шаблона в одной из этих областей.
Используйте спецификацию шаблона для связанного развертывания
Чтобы использовать спецификацию шаблона из другого шаблона Azure Resource Manager (шаблон ARM), вы создаете развертывание, которое использует эту спецификацию шаблона. Этот тип развертывания называется связанное развертывание, так как вы связываетесь с шаблоном развертывания, указанным внешне.
В Azure развертывание — это ресурс, имеющий тип ресурса Microsoft.Resources/deployments
. При развертывании шаблона ARM создается ресурс развертывания. Та же концепция применяется при развертывании спецификации шаблона, как показано ниже.
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
}
}
}
При наличии параметров для развертывания спецификации шаблона используйте свойство parameters
:
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "createStorage",
"properties": {
"mode": "Incremental",
"templateLink": {
"id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
},
"parameters": {
"storageAccountName": {
"value": "[parameters('storageAccountName')]"
}
}
}
}
Используйте спецификацию шаблона в виде модуля Bicep
Спецификацию шаблона можно использовать в виде модуля в файле Bicep:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
}
Обратите внимание, что путь модуля использует специальный формат:
Путь модуля состоит из трёх компонентов, разделённых символом двоеточие (:
):
- схема : Bicep поддерживает несколько типов модулей, которые называются схемами. При использовании спецификации шаблона в качестве модуля вы используете
ts
в качестве схемы. -
идентификатор подписки, имя группы ресурсов и имя спецификации шаблона: Эти значения должны указывать расположение ресурса спецификации шаблона, опубликованного ранее. Косая черта (
/
) используется для разделения идентификатора подписки, имени группы ресурсов и имени спецификации шаблона. Этот раздел пути модуля не является полным идентификатором ресурса для спецификации шаблона — это только несколько его компонентов. - Версия: требуется указать версию спецификации шаблона.
Заметка
При указании пути к модулю нельзя использовать переменные, параметры или интерполяцию строк. Полный путь спецификации шаблона должен быть сохранен в файле Bicep.
При наличии параметров для предоставления спецификации шаблона используйте свойство params
:
module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
name: 'storageAccountTemplateSpec'
params: {
storageAccountName: storageAccountName
}
}
Файл спецификации шаблона скачивается и копируется (транспилированный) в шаблон JSON ARM при построении Bicep-файла. Обычно эта операция происходит при развертывании файла Bicep, но вы также можете использовать средство Bicep для явного транспилирования, выполнив команду bicep build
.