Развертывание спецификации шаблона
После создания и публикации спецификации шаблона его можно развернуть. В этом уроке вы узнаете о способах развертывания спецификации шаблона.
Создание развертывания с использованием спецификации шаблона
Чтобы развернуть спецификацию шаблона в группе ресурсов, используйте тот же New-AzResourceGroupDeployment
командлет, с которым вы знакомы. Вместо указания файла шаблона указывается идентификатор ресурса спецификации шаблона, как показано в следующем примере.
New-AzResourceGroupDeployment `
-TemplateSpecId '/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/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/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/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
транспилирования, выполнив команду.