Руководство. Использование шаблонов быстрого запуска Azure

Шаблоны быстрого запуска Azure — это репозиторий шаблонов, внесенных сообществом. Примеры шаблонов можно использовать в разработке шаблонов. В этом руководстве вы найдете определение ресурса веб-сайта и добавьте его в собственный шаблон. Эта инструкция занимает 12 минут .

Предпосылки

Мы рекомендуем выполнить руководство по экспортируемым шаблонам, но это не обязательно.

Вам необходимо иметь Visual Studio Code, а также Azure PowerShell или Azure CLI. Дополнительные сведения см. в разделе "Инструменты шаблона".

Проверка шаблона

В конце предыдущего руководства шаблон имел следующий JSON-файл:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Этот шаблон работает для развертывания учетных записей хранения и планов службы приложений, но может потребоваться добавить веб-сайт в него. Вы можете использовать готовые шаблоны для быстрого обнаружения JSON, необходимого для развертывания ресурса.

Поиск шаблона

  1. Открытие шаблонов быстрого запуска Azure

  2. Выберите плитку с заголовком "Развернуть базовое веб-приложение Linux". Если у вас возникли проблемы с поиском, вот прямая ссылка.

  3. Выберите Просмотреть на GitHub.

  4. Выберите azuredeploy.json.

  5. Изучите шаблон. Найдите ресурс Microsoft.Web/sites.

    Веб-сайт быстрого старта по шаблону Диспетчера ресурсов

Изменение существующего шаблона

Слияние шаблона быстрого запуска с существующим шаблоном:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "type": "string",
      "minLength": 3,
      "maxLength": 11
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ],
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Имя веб-приложения должно быть уникальным в Azure. Чтобы предотвратить наличие повторяющихся имен, переменная webAppPortalName обновляется с "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" на "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Добавьте запятую в конце Microsoft.Web/serverfarms определения, чтобы отделить определение ресурса от Microsoft.Web/sites определения.

В этом новом ресурсе есть несколько важных функций.

Он имеет элемент с именем dependsOn , заданным для плана службы приложений. Этот параметр необходим, так как план службы приложений должен существовать перед созданием веб-приложения. Элемент dependsOn сообщает Resource Manager, как упорядочить ресурсы для развертывания.

Свойство serverFarmId использует функцию resourceId . Эта функция получает уникальный идентификатор ресурса. В этом случае он получает уникальный идентификатор плана службы приложений. Веб-приложение связано с одним конкретным планом службы приложений.

Развертывание шаблона

Используйте Azure CLI или Azure PowerShell для развертывания шаблона.

Если вы еще не создали группу ресурсов, см. статью "Создать группу ресурсов". В этом примере предполагается, что переменная templateFile задана в путь к файлу шаблона, как показано в первом руководстве.

New-AzResourceGroupDeployment `
  -Name addwebapp `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS `
  -webAppName demoapp

Замечание

Если развертывание завершается сбоем, используйте verbose переключатель, чтобы получить сведения о ресурсах, которые вы создаете. Используйте параметр debug, чтобы получить дополнительные сведения об отладке.

Очистите ресурсы

Если вы переходите к следующему руководству, вам не нужно удалять группу ресурсов.

Если вы сейчас хотите остановиться, возможно, вы захотите удалить группу ресурсов.

  1. На портале Azure выберите группы ресурсов в меню слева.
  2. Введите имя группы ресурсов в поле текста фильтр для любого поля....
  3. Установите флажок рядом с myResourceGroup и выберите myResourceGroup или имя группы ресурсов.
  4. Выберите "Удалить группу ресурсов " в верхнем меню.

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

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