Azure апрель (10 частей серии)
Мы выбрали наши любимые советы и трюки, созданные Майкл Крамп И доставляют свежий технический контент на Azure All апреля! Пропустить день (или больше)? Догонять серию .
У вас нет лазу Возьмите бесплатную подписку Отказ
Если вы были в Tech достаточно долго, вы можете ассоциировать рычаг с архитектурой CPU. В этом случае рука означает Azure Resource Manager Отказ ARM — это то, как вы организуете все свои вещи на Azure — виртуальные машины (VMS), базы данных, учетные записи хранения, контейнеры, веб-приложения, боты и многое другое.
В Azure мы называем все ваши вещи ресурсы.
Большинство людей, как правило, создают несколько связанных предметов вместе в Azure. Веб-приложение и база данных могут содержаться в одной группе ресурсов. Но что, если вы должны были сделать это все время? Или для многих разных клиентов?
Не было бы неплохо иметь простой способ отслеживать все повторяемые группы ресурсов, которые вы создаете для людей? Хорошие новости, это именно то, что Шаблоны руки делать!
Хотите больше шаблонов руки? Проверьте наш Обзор Действительно
Когда вам нужен простой способ повторить развертывание инфраструктуры на Azure, шаблоны ARM собираются сэкономить вам много времени.
Если вам когда-нибудь нужно поделиться своей инфраструктурой с другими людьми, такие как проекты OpenSource или для блогов, учебников и документация — шаблоны ARM, будут бойцами, и позволит своим читателям и пользователям повторить то, что вы сделали.
Наконец, если вам просто нужен способ отслеживать то, что вы развернули на Azure, шаблоны ARM — отличный способ помочь вам помнить.
Это то, где приходят шаблоны руки. Шаблоны ARM — это файлы JSON, которые действуют как чертежи для соответствующих ресурсов, которые вы хотите развернуть вместе. Вы также услышите это под названием «Инфраструктура как код,« или IAC », которая является выгодным для того, чтобы вы могли загрузить свои инфраструктурные заметки в GitHub, если хотите.
Это структурированный формат для отслеживания вашей лазурной инфраструктуры с некоторыми сверхдержавами. Самая большая сверхдержава шаблона ARM — это то, что вы можете использовать шаблоны для автоматизации развертываний инфраструктуры, потому что Azure знает, как их прочитать. В конце концов, это действительно просто файл JSON.
В приведенном ниже примере мы создаем шаблон ARM, который создает концентратор уведомления. Вы увидите, что он содержит вещи, которые потребности в развертывании, такие как Имя
, Расположение
, так далее.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", "contentVersion": "1.0.0.0", "parameters": { "namespaceName": { "type": "string", "metadata": { "description": "The name of the Notification Hubs namespace." } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The location in which the Notification Hubs resources should be deployed." } } }, "variables": { "hubName": "MyHub" }, "resources": [ { "apiVersion": "2014-09-01", "name": "[parameters('namespaceName')]", "type": "Microsoft.NotificationHubs/namespaces", "location": "[parameters('location')]", "kind": "NotificationHub", "resources": [ { "name": "[concat(parameters('namespaceName'), '/', variables('hubName'))]", "apiVersion": "2014-09-01", "type": "Microsoft.NotificationHubs/namespaces/notificationHubs", "location": "[parameters('location')]", "dependsOn": [ "[parameters('namespaceName')]" ] } ] } ] }
Вы можете сделать шаблон руки в Visual Studio , в VSCode или в Azure Portal Отказ
Последний способ, наверное, самый простой, так как он проходит вас через процесс. Начните создавать ресурс через портал, как обычно, нажав на Создать ресурс
На вашей панели инструментальной панели Azure.
Теперь выберите, что вы хотите создать. Я собираюсь создать веб-приложение. Посмотрите на дно этой страницы, и вы увидите варианты автоматизации.
Но что эта неасурсная ссылка мечена Варианты автоматизации
Рядом с этим делать? Вы, наверное, никогда не замечали его раньше или боялись с этим беспорядок, но если вы нажмете по этой ссылке, вы будете на дороге, чтобы создать шаблон ARM для вашего ресурса.
Продолжай и нажмите Создать ресурс
Внутри портала Azure и выберите Веб-приложение
Отказ
Введите Имя
и а Группа ресурсов
Для вашего веб-приложения и нажмите Варианты автоматизации
внизу перед ударом Создать
Для того, чтобы начать создавать шаблон вашего руки.
После того, как вы нажмете Варианты автоматизации
Вы увидите что-то вроде этого:
Шаблон для создания веб-приложения (или любого другого ресурса Azure) — это просто файл JSON с несколькими значениями, описывающими, как будет развернуто ваше веб-приложение. Как только вы преодолели модный жаргон, это довольно просто. И мы даем вам легко начать, не говоря, свободно говоря, JSON.
Чтобы сделать вещи максимально простыми, давайте предположим, что вы хотите добавить одно те же настройки каждый раз, когда вы развертываете шаблон вашего веб-приложения.
Перейти к Развертывать
тогда Редактировать шаблон
и вставьте следующие параметры, чтобы перезаписать раздел ресурса вашего шаблона. (Конечно, вы можете добавить столько ключей в качестве потребностей вашего веб-приложения или вносить изменения, как вы видите подходящие.)
Мы добавляем три имена и 3 значения для MyFiRStname
, MyLastname
и Myssn.
.
"resources": [ { "apiVersion": "2016-03-01", "name": "[parameters('name')]", "type": "Microsoft.Web/sites", "properties": { "name": "[parameters('name')]", "siteConfig": { "appSettings": [ { "name": "MyFirstName", "value": "Michael" }, { "name": "MyLastName", "value": "Crump" }, { "name": "MySSN", "value": "355-643-3356" } ] }, "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]", "hostingEnvironment": "[parameters('hostingEnvironment')]" }, "location": "[parameters('location')]" }],
Нажмите Сохранять.
Убедитесь, что настройки заполнены. Согласитесь с условиями и проверьте Покупка
вариант.
Если он говорит о невыполнении развертывания, то снова дайте ему снимок. Иногда асинхронный возврат — единственный икота.
Ваши настройки (для MyFirstname
, MyLastname
и Myssn
) теперь будут развернуты.
После развертывания перейдите к вашему App Service
и пойти в Настройки приложения
. Вы увидите ваш сайт, развернутый вместе с настройками, которые мы указали ранее.
Теперь давайте посмотрим на добавление параметров.
Вы уже видели, что вы можете автоматизировать развертывание статической информации о конфигурации, как настройки приложения с вашим шаблоном руки. Но Как насчет предоставления параметров, которые позволяют конечным пользователям в входные значения перед развертыванием.
Идти вперед и искать Шаблоны
Внутри портала Azure и нажмите Добавить
создать новый.
Введите имя и описание на шаблоне руки.
Мы хотим иметь динамические настройки, которые настраиваются каждый раз, когда вы развертываете ваше веб-приложение вместо того, чтобы они были одинаковыми каждый раз, вам просто нужно добавить значения параметров для того, что вы хотите вашему шаблону руки.
Ниже приведен образец из трех значений ( FirstNameValue
, LateNameValue
и Ssnvalue
) что мы ранее заканчивались раньше:
"FirstNameValue": { "type": "string" }, "LastNameValue": { "type": "string" }, "SSNValue": { "type": "string" },
Мы добавим те же параметры под названием FirstNameValue
, LateNameValue
и Ssnvalue
к параметрам коллекции шаблона. Отныне, каждый раз, когда вы развертываете этот шаблон, вам будет предложено ввести значение для каждого.
"siteConfig": { "appSettings": [ { "name": "MyFirstName", "value": "[parameters('FirstNameValue')]" }, { "name": "MyLastName", "value": "[parameters('LastNameValue')]" }, { "name": "MySSN", "value": "[parameters('SSNValue')]" } ] }
Наш полный файл шаблона выглядит следующим образом:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "appServiceName": { "type": "string", "minLength": 1, "maxLength": 10 }, "appServicePlanName": { "type": "string", "minLength": 1 }, "FirstNameValue": { "type": "string" }, "LastNameValue": { "type": "string" }, "SSNValue": { "type": "string" }, "appServicePlanSkuName": { "type": "string", "defaultValue": "S1", "allowedValues": [ "F1", "D1", "B1", "B2", "B3", "S1", "S2", "S3", "P1", "P2", "P3", "P4" ], "metadata": { "description": "Describes plan's pricing tier and capacity. Check details at https://azure.microsoft.com/en-us/pricing/details/app-service/" } } }, "variables": { "appHostingPlanNameVar": "[concat(parameters('appServicePlanName'),'-apps')]" }, "resources": [ { "name": "[variables('appHostingPlanNameVar')]", "type": "Microsoft.Web/serverfarms", "location": "[resourceGroup().location]", "apiVersion": "2015-08-01", "sku": { "name": "[parameters('appServicePlanSkuName')]" }, "dependsOn": [], "tags": { "displayName": "appServicePlan" }, "properties": { "name": "[variables('appHostingPlanNameVar')]", "numberOfWorkers": 1 } }, { "name": "[parameters('appServiceName')]", "type": "Microsoft.Web/sites", "location": "[resourceGroup().location]", "apiVersion": "2015-08-01", "dependsOn": [ "[resourceId('Microsoft.Web/serverfarms', variables('appHostingPlanNameVar'))]" ], "tags": { "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('appHostingPlanNameVar')))]": "Resource", "displayName": "webApp" }, "properties": { "name": "[parameters('appServiceName')]", "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appHostingPlanNameVar'))]", "siteConfig": { "appSettings": [ { "name": "MyFirstName", "value": "[parameters('FirstNameValue')]" }, { "name": "MyLastName", "value": "[parameters('LastNameValue')]" }, { "name": "MySSN", "value": "[parameters('SSNValue')]" } ] } } } ], "outputs": {} }
Если вы сохраните шаблон, то в следующий раз вы развертываете ресурсы, используя этот шаблон ARM, вам потребуется ввести новое значение для имени, фамилии и SSN, который будет использоваться в ваших настройках приложения.
И после развертывания идите и проверьте настройки приложения.
Довольно круто, да? Как только я преодолею путаницу того, какие шаблоны руки есть и почему они нуждаются в них, это как мой мозг открылся. Шаблоны ARM облегчают вашу жизнь путем автоматизации управления ресурсами и настройки значений по мере необходимости.
Хотите узнать больше о шаблонах ARM? Проверьте наш Обзор Действительно
Мы будем публиковать статьи каждый день в апреле, поэтому оставаться настроенными или прыгать вперед и проверить больше советов и трюков сейчас .
Azure апрель (10 частей серии)
Оригинал: «https://dev.to/azure/demystifying-arm-templates-azure-resource-manager-b8c»