Поделиться через


Краткое руководство. Создание и развертывание спецификации шаблона

В этом кратком руководстве показано, как упаковать шаблон Azure Resource Manager (шаблон ARM) в спецификацию шаблона, которую вы будете развертывать. Спецификация шаблона содержит шаблон ARM, который развертывает учетную запись хранения.

Tip

Bicep рекомендуется, так как он предлагает те же возможности, что и шаблоны ARM, и синтаксис проще использовать. Дополнительные сведения см. в статье Краткое руководство. Создание и развертывание спецификации шаблона с помощью файла Bicep.

Prerequisites

Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .

Note

Чтобы использовать спецификацию шаблона с Azure PowerShell, необходимо установить версию 5.0.0 или более новую. Чтобы использовать его с Azure CLI, используйте версию 2.14.2 или более позднюю версию.

Создание шаблона

Вы создаете спецификацию шаблона из шаблона ARM. Скопируйте следующий шаблон и сохраните его как C:\Templates\createStorageV1.js.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[uniqueString(resourceGroup().id)]"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

Создание спецификации шаблона

Спецификация шаблона — это тип ресурса с именем Microsoft.Resources/templateSpecs. Чтобы создать спецификацию шаблона, используйте PowerShell, Azure CLI, портал Azure или шаблон ARM.

  1. Создайте новую группу ресурсов, которая будет содержать спецификацию шаблона.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Создайте спецификацию шаблона в этой группе ресурсов. Задайте для новой спецификации шаблона имя storageSpec.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\Templates\createStorageV1.json"
    

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

Для развертывания спецификации шаблона используйте те же команды развертывания, что и для развертывания шаблона. Передайте идентификатор ресурса спецификации шаблона для развертывания.

  1. Создайте группу ресурсов, которая будет содержать новую учетную запись хранения.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Получите ИД ресурса спецификации шаблона.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Разверните спецификацию шаблона.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Укажите параметры точно так же, как и для шаблона ARM. Повторно разверните спецификацию шаблона с параметром для типа учетной записи хранения.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

Предоставление доступа

Чтобы разрешить другим пользователям в организации развертывать спецификацию шаблона, предоставьте им доступ на чтение. Назначьте роль читателя группе Microsoft Entra для группы ресурсов, содержащей спецификации шаблона, к которым требуется предоставить общий доступ. Дополнительные сведения см. в статье Учебник. Предоставление доступа группам к ресурсам Azure с помощью Azure PowerShell.

Шаблон обновления

Чтобы внести изменения в шаблон в спецификации шаблона, измените шаблон. Следующий шаблон аналогичен предыдущему шаблону, за исключением добавления префикса для имени учетной записи хранения. Скопируйте следующий шаблон и сохраните его как файлcreateStorageV2.json .

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "accessTier": "Hot"
      }
    }
  ]
}

Обновление версии спецификации шаблона

Вместо создания новой спецификации шаблона для измененного шаблона добавьте новую версию с именем 2.0 в существующую спецификацию шаблона. Вы можете развернуть любую версию.

  1. Создайте новую версию спецификации шаблона.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\Templates\createStorageV2.json"
    
  2. Чтобы развернуть новую версию, получите идентификатор ресурса для версии 2.0.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Разверните эту версию. Укажите префикс для имени учетной записи хранения.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -namePrefix "demoaccount"
    

Очистка ресурсов

Чтобы очистить ресурс, развернутый в этом кратком руководстве, удалите обе созданные группы ресурсов.

  1. На портале Azure в меню слева выберите "Группа ресурсов".
  2. В поле "Фильтровать по имени" введите имя группы ресурсов (templateSpecRG и storageRG).
  3. Выберите имя группы ресурсов.
  4. В меню сверху выберите "Удалить группу ресурсов".

Дальнейшие шаги

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