Разверните спецификацию шаблона

Завершено

После создания и публикации спецификации шаблона вы можете его развернуть. В этом уроке вы узнаете о способах развертывания спецификации шаблона.

Создание развертывания с помощью спецификации шаблона

Чтобы развернуть спецификацию шаблона в группе ресурсов, используйте тот самый командлет 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.