Руководство по развертыванию шаблона ARM в локальной среде
Узнайте, как развернуть шаблон Azure Resource Manager (шаблон ARM) на локальном компьютере. Выполнение занимает около 8 минут.
Этот учебник первый в серии. В процессе работы над серией вы модулируете шаблон, создавая связанный шаблон, сохраняете связанный шаблон в учетной записи хранения и защищаете связанный шаблон с помощью маркера SAS, кроме того вы узнаете, как создать конвейер DevOps для развертывания шаблонов. Эта серия посвящена развертыванию шаблона. Если вы хотите изучить разработку шаблонов, ознакомьтесь с Руководством для начинающих.
Получение средств
Убедитесь, что у вас есть средства, необходимые для развертывания шаблонов.
Развертывание из командной строки
Для развертывания шаблона используйте либо Azure CLI, либо Azure PowerShell. Ознакомьтесь с инструкциями по установке:
- Установка Azure PowerShell
- Установка Azure CLI в Windows
- Установка Azure CLI в Linux
- Установка Azure CLI в macOS
После установки Azure PowerShell или Azure CLI убедитесь, что вы вошли в систему в первый раз. Дополнительные сведения см. в разделах для PowerShell или Azure CLI.
Редактор (необязательно)
Шаблоны — это файлы JSON. Для просмотра и изменения шаблонов нужен редактор JSON. Советуем использовать Visual Studio Code с расширением средств Resource Manager. Если необходимо установить эти средства, см. статью Краткое руководство. Создание шаблонов ARM с помощью Visual Studio Code.
Проверка шаблона
Шаблон развертывает учетную запись хранения, план службы приложений и веб-приложение. Если вы заинтересованы в создании шаблона быстрого запуска, изучите этот учебник. Однако это не является обязательным для работы с данным руководством.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"minLength": 3,
"maxLength": 11,
"metadata": {
"description": "Specify a project name that is used to generate resource names."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specify a location for the resources."
}
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
],
"metadata": {
"description": "Specify the storage account type."
}
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "Specify the Runtime stack of current web app"
}
}
},
"variables": {
"storageAccountName": "[format('{0}{1}', parameters('projectName'), uniqueString(resourceGroup().id))]",
"webAppName": "[format('{0}WebApp', parameters('projectName'))]",
"appServicePlanName": "[format('{0}Plan', parameters('projectName'))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "[variables('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": "2022-09-01",
"name": "[variables('webAppName')]",
"location": "[parameters('location')]",
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
]
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2023-01-01').primaryEndpoints]"
}
}
}
Важно!
Имя учетной записи хранения должно быть уникальным, содержать от 3 до 24 символов и состоять только из цифр и букв нижнего регистра. Переменная storageAccountName
примера шаблона сочетает максимальное значение параметра projectName
, равное 11 символам, со значением uniqueString, равным 13 символам.
Сохраните копию шаблона на локальном компьютере с расширением JSON, например azuredeploy.json. Этот шаблон развертывается далее в этом руководстве.
Вход в Azure
Чтобы начать работу с Azure PowerShell или Azure CLI для развертывания шаблона, выполните вход, используя данные своей учетной записи в Azure.
Connect-AzAccount
Если у вас несколько подписок Azure, выберите ту, которую хотите использовать. Замените [SubscriptionID/SubscriptionName]
и квадратные скобки []
сведениями о подписке:
Set-AzContext [SubscriptionID/SubscriptionName]
Создать группу ресурсов
При развертывании шаблона необходимо указать группу ресурсов, которая будет содержать развернутые ресурсы. Перед выполнением команды развертывания создайте группу ресурсов с помощью Azure CLI или Azure PowerShell. Выберите вкладки в следующем разделе кода, чтобы выбрать между Azure PowerShell и Azure CLI. Примеры интерфейса командной строки в этой статье написаны для оболочки bash.
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource and resource group names"
$resourceGroupName = "${projectName}rg"
New-AzResourceGroup `
-Name $resourceGroupName `
-Location "Central US"
Развертывание шаблона
Используйте один или оба варианта развертывания для развертывания шаблона.
$projectName = Read-Host -Prompt "Enter the same project name"
$templateFile = Read-Host -Prompt "Enter the template file path and file name"
$resourceGroupName = "${projectName}rg"
New-AzResourceGroupDeployment `
-Name DeployLocalTemplate `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFile `
-projectName $projectName `
-verbose
Дополнительные сведения о развертывании шаблона с помощью Azure PowerShell см. в статье Развертывание ресурсов с использованием шаблонов ARM и Azure PowerShell.
Очистка ресурсов
Очистите развернутые ресурсы, удалив группу ресурсов.
- На портале Azure в меню слева выберите Группа ресурсов.
- В поле Фильтровать по имени введите имя группы ресурсов.
- Выберите имя группы ресурсов.
- В главном меню выберите Удалить группу ресурсов.
Дальнейшие действия
Вы узнали как выполнять развертывание локального шаблона. В следующем руководстве вы разделите шаблон на основной шаблон и связанный, а также узнаете, как сохранить и защитить связанный шаблон.