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

Завершено

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

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

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

Обратите внимание, что для пути к модулю используется специальный формат:

Diagram showing the components of the template spec path.

Путь к модулю состоит из трех компонентов, разделенных символом двоеточия (:):

  • Схема. 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 транспилирования, выполнив команду.