Развертывание виртуальных машин запуска и остановки версии 2 в подписке Azure
Выполните действия, описанные в этой статье, в последовательной последовательности, чтобы установить функцию запуска и остановки виртуальных машин версии 2. После завершения процесса установки настройте расписания в соответствии с вашими требованиями.
Рекомендации по разрешениям и политикам
Помните о следующих рекомендациях до и во время развертывания:
Решение позволяет пользователям с соответствующими разрешениями управления доступом на основе ролей (RBAC) в развертывании Start/Stop версии 2 добавлять, удалять и управлять расписаниями для виртуальных машин под областью действия экземпляра "Запуск и остановка виртуальных машин версии 2". Такое поведение предусмотрено программой. На практике это означает, что пользователь, у которого нет явных разрешений на виртуальной машине, по-прежнему может создавать операции запуска, остановки и автостопирования на этой виртуальной машине, если у них есть разрешение на изменение решения Start/Stop версии 2, управляющего виртуальной машиной.
Все пользователи, имеющие доступ к решению запуска и остановки версии 2, могут изучить затраты, экономию, историю операций и другие данные, которые хранятся в экземпляре Application Insights, используемом приложением запуска и остановки версии 2.
При управлении решением запуска и остановки версии 2 следует учитывать разрешения пользователей на решение запуска и остановки версии 2, особенно если у них нет разрешения на непосредственное изменение целевых виртуальных машин.
При развертывании решения Start/Stop версии 2 в новой или существующей группе ресурсов тег с именем SolutionName со значением StartStopV2 добавляется в группу ресурсов и к ее ресурсам, развернутым с помощью Start/Stop версии 2. Все другие теги этих ресурсов удаляются. Если у вас есть политика Azure, которая запрещает операции управления на основе тегов ресурсов, необходимо разрешить операции управления для ресурсов, содержащих только этот тег.
Развертывание компонента
Развертывание инициируется организацией GitHub для запуска и остановки виртуальных машин версии 2. Хотя эта функция предназначена для управления всеми виртуальными машинами в вашей подписке, во всех группах ресурсов из одного развертывания в подписке можно установить еще один экземпляр функции, если это необходимо для соответствия принятой в вашей организации модели операций или другим требованиям. Ее также можно настроить на централизованное управление виртуальными машинами сразу в нескольких подписках.
Чтобы упростить управление и удаление, рекомендуем развертывать функцию запуска и останова виртуальных машин версии 2 в выделенной группе ресурсов.
Примечание.
В настоящее время это решение не поддерживает выбор существующей учетной записи хранения или ресурса Application Insights.
Примечание.
Изменился формат именования для приложения-функции и учетной записи хранения. Чтобы гарантировать глобальную однозначность, теперь к именам этих ресурсов добавляется произвольная и уникальная строка.
Откройте браузер и перейдите к организации GitHub запуска и останова виртуальных машин версии 2.
Выберите вариант развертывания на основе облачной среды Azure, в которой созданы ваши виртуальные машины Azure.
Если отобразится соответствующий запрос, выполните вход на портал Azure.
Выберите соответствующий План из раскрывающегося списка. При выборе плана избыточности между зонами (Start/StopV2-AZ) необходимо создать развертывание в одном из следующих регионов:
- Восточная Австралия
- Южная Бразилия
- Центральная Канада
- Центральная часть США
- Восточная часть США
- Восточная часть США 2
- Центральная Франция
- Центрально-Западная Германия
- Восточная Япония
- Северная Европа
- Юго-Восточная Азия
- южная часть Соединенного Королевства
- Западная Европа
- западная часть США 2
- Западная часть США — 3
Нажмите кнопку Создать. После этого откроется страница пользовательского развертывания Azure Resource Manager на портале Azure.
Введите следующие значения:
Имя. Значение Область/регион Выберите регион рядом с вами для размещения новых ресурсов. Имя группы ресурсов Укажите имя группы ресурсов, которая будет содержать отдельные ресурсы для запуска и останова виртуальных машин. Регион группы ресурсов Укажите регион для группы ресурсов. Например, центральная часть США. Имя приложения-функции Azure Введите имя, допустимое в пути URL-адреса. Имя, которое вы вводите, проверяется, чтобы убедиться, что оно уникально в функциях Azure. Имя Application Insights Укажите имя экземпляра Application Insights, в котором будет храниться аналитика для запуска и останова виртуальных машин. Регион Application Insights Укажите регион для экземпляра Application Insights. Имя учетной записи хранения Укажите имя учетной записи службы хранилища Microsoft Azure для хранения данных телеметрии выполнения запуска и останова виртуальных машин. Электронная почта Укажите один или несколько адресов электронной почты для получения уведомлений о состоянии, разделяя их запятыми (,). Нажмите Просмотреть и создать в нижней части страницы.
Нажмите кнопку Создать, чтобы начать развертывание.
Чтобы просмотреть состояние развертывания, щелкните значок колокольчика (уведомления) в верхней части экрана. Появится уведомление Выполняется развертывание. Подождите, пока развертывание завершится.
Выберите Перейти к группе ресурсов в области уведомлений. Появится приблизительно такой экран:
Примечание.
Мы собираем данные телеметрии для операций и пульса, чтобы помочь вам, если вы обратитесь в службу поддержки для устранения неполадок. Мы также собираем данные журнала событий виртуальной машины, чтобы узнать, когда служба выполняла действия с виртуальной машиной и как долго виртуальная машина была отложена, чтобы определить эффективность службы.
Включение нескольких подписок
После завершения развертывания запуска и останова выполните следующие действия, чтобы запуск и останов виртуальных машин версии 2 вступил в силу более чем в одной подписке.
Скопируйте значение имени приложения-функции Azure, указанное во время развертывания.
На портале Azure перейдите к вашей вторичной подписке.
Выберите Управление доступом (IAM) .
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Параметр Значение Роль Участник Назначить доступ для Пользователь, группа или субъект-служба Участники <Расположение имени приложения-функция Azure>
Обзор настройки расписаний
Чтобы управлять методом автоматизации для управления запуском и остановкой виртуальных машин, необходимо настроить одно или несколько предоставляемых приложений логики в соответствии с вашими требованиями.
Запланировано: действия запуска и отмены основаны на заданном вами расписании для Azure Resource Manager и классических виртуальных машин. ststv2_vms_Scheduled_start и ststv2_vms_Scheduled_stop настраивают запланированное время запуска и остановки.
Последовательно — действия запуска и останова основываются на расписании целевых виртуальных машин с предварительно определенными тегами последовательностей. Поддерживаются только два именованных тега: sequencestart и sequencestop. ststv2_vms_Sequenced_start и ststv2_vms_Sequenced_stop настраивают запуск и останов в последовательности.
Примечание.
Этот сценарий поддерживает только виртуальные машины Azure Resource Manager.
AutoStop — эта функция используется только для выполнения действия останова для виртуальных машин Azure Resource Manager и классических виртуальных машин в зависимости от использования ЦП. Она также может быть выполняемым по расписанию активным действием, которое создает оповещения на виртуальных машинах и, в зависимости от условия, оповещение может инициироваться для выполнения действия останова.ststv2_vms_AutoStop настраивает функциональность автоматического останова.
Если требуются дополнительные расписания, можно продублировать одно из предоставленных приложений логики с помощью функции Клонировать на портале Microsoft Azure.
Сценарий запуска и останова по расписанию
Выполните следующие действия, чтобы настроить действие запуска и останова по расписанию для Azure Resource Manager и классических виртуальных машин. Например, можно настроить расписание ststv2_vms_Scheduled_start, чтобы они запускались утром, когда вы приходите на работу, а останавливать все виртуальные машины в подписке вечером, когда вы уходите с работы, с помощью расписания ststv2_vms_Scheduled_stop.
Также поддерживается настройка приложения логики только для запуска виртуальных машин.
Для каждого сценария можно выбрать целью действия одну или несколько подписок, одну или несколько групп ресурсов, а также указать одну или более виртуальных машин в списках включения или исключения. Указывать их одновременно в одном приложении логики не разрешается.
Войдите на портал Azure и перейдите к разделу Приложения логики.
В списке приложений логики выберите ststv2_vms_Scheduled_start, чтобы настроить запуск по расписанию. Чтобы настроить останов по расписанию, выберите ststv2_vms_Scheduled_stop.
Выберите Конструктор приложений логики в области слева.
Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.
Примечание.
Если вы не предоставляете дату начала и время первого повторения, повторение будет немедленно выполняться при сохранении приложения логики, что может привести к запуску или остановке виртуальных машин перед запланированным запуском.
На панели конструктора В области конструктора выберите Function-Try, чтобы настроить параметры целевых объектов. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/" ] } }
Укажите несколько подписок в массиве
subscriptions
, отделяя каждое из значений запятыми, как показано в следующем примере."Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/" ]
Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов или несколько, если это требуется.
В этом примере также показано исключение виртуальной машины. Виртуальную машину можно исключить, указав для этого путь к ресурсу виртуальной машины или подстановочный знак.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/" ], "ResourceGroups": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/" ], "ExcludedVMLists": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] } }
В нашем случае действие будет выполнено надо всеми виртуальными машинами, кроме тех, имя которых начинается на "Az" или "Bz", в обеих подписках.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [“Az*”,“Bz*”], "Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/" ] } }
Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg3/providers/Microsoft.Compute/virtualMachines/vm2", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30" ] } }
В области обзора приложения логики выберите Включить.
Сценарий запуска и останова по последовательности
В среде, которая включает в себя два или более компонента на нескольких виртуальных машинах Azure Resource Manager, работающих в архитектуре распределенных приложений, становится важным соблюдение последовательности, в которой запускаются и останавливаются компоненты. Перед настройкой этого сценария убедитесь, что вы применили теги sequencestart и sequencestop к целевым виртуальным машинам, как описано на странице обзора .
В списке приложений логики выберите ststv2_vms_Sequenced_start, чтобы настроить запуск по последовательности. Чтобы настроить останов по последовательности, выберите ststv2_vms_Sequenced_stop.
Выберите Конструктор приложений логики в области слева.
Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.
Примечание.
Если вы не предоставляете дату начала и время первого повторения, повторение будет немедленно выполняться при сохранении приложения логики, что может привести к запуску или остановке виртуальных машин перед запланированным запуском.
В области конструктора выберите "Функция-Попробовать", чтобы настроить целевые параметры, а затем нажмите> <кнопку /Представление кода в верхнем меню, чтобы изменить код для элемента Function-Try. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/" ] }, "Sequenced": true }
Укажите несколько подписок в массиве
subscriptions
, отделяя каждое из значений запятыми, как показано в следующем примере."Subscriptions": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/" ]
Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов, если это требуется.
В этом примере также показано, как исключить виртуальную машину по ее пути ресурса, в отличие от примера запуска/остановки по расписанию, в котором использовались подстановочные знаки.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "Subscriptions":[ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/" ], "ResourceGroups": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/" ], "ExcludedVMLists": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] }, "Sequenced": true }
Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.
{ "Action": "start", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm2", "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg2/providers/Microsoft.ClassicCompute/virtualMachines/vm30" ] }, "Sequenced": true }
Сценарий автоматического останова
Функция запуска и останов виртуальных машин версии 2 поможет снизить затраты на использование Azure Resource Manager и классических виртуальных машин в подписке, выявляя виртуальные машины Azure, которые не используются в периоды малой нагрузки, например в нерабочее время, и автоматически завершая их работу в случае, если процент использования процессора меньше указанного.
Следующие свойства оповещений о метриках в тексте запроса поддерживают настройку:
- AutoStop_MetricName
- AutoStop_Condition
- AutoStop_Threshold
- AutoStop_Description
- AutoStop_Frequency
- AutoStop_Severity
- AutoStop_Threshold
- AutoStop_TimeAggregationOperator
- AutoStop_TimeWindow
Дополнительные сведения о работе оповещений о метриках Azure Monitor и об их настройке см. в статье Оповещения о метриках в Azure Monitor.
Чтобы настроить автоматический останов, выберите в списке приложений логики ststv2_vms_AutoStop.
Выберите Конструктор приложений логики в области слева.
Когда отобразится конструктор приложений логики, на панели конструктора выберите Периодичность, чтобы настроить расписание приложения логики. Дополнительные сведения о конкретных параметрах периодичности см. в разделе Планирование повторяющихся задач.
На панели конструктора В области конструктора выберите Function-Try, чтобы настроить параметры целевых объектов. Если необходимо управлять виртуальными машинами во всех группах ресурсов в подписке, внесите в текст запроса изменения, показанные в следующем примере.
{ "Action": "stop", "EnableClassic": false, "AutoStop_MetricName": "Percentage CPU", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "RequestScopes":{ "Subscriptions":[ "/subscriptions/12345678-1111-2222-3333-1234567891234/", "/subscriptions/12345678-2222-4444-5555-1234567891234/" ], "ExcludedVMLists":[] } }
Если необходимо управлять виртуальными машинами лишь в определенных группах ресурсов, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. Можно указать одну группу ресурсов, если это требуется.
{ "Action": "stop", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_MetricName": "Percentage CPU", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "ResourceGroups": [ "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/", "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroupsvmrg2/", "/subscriptions/12345678-2222-4444-5555-1234567891234/resourceGroups/VMHostingRG/" ] } }
Если необходимо управлять конкретным набором виртуальных машин в составе подписки, внесите в текст запроса изменения, показанные в следующем примере. Все указанные пути к ресурсам должны разделяться запятыми. При необходимости можно указать одну виртуальную машину.
{ "Action": "stop", "AutoStop_Condition": "LessThan", "AutoStop_Description": "Alert to stop the VM if the CPU % falls below the threshold", "AutoStop_Frequency": "00:05:00", "AutoStop_MetricName": "Percentage CPU", "AutoStop_Severity": "2", "AutoStop_Threshold": "5", "AutoStop_TimeAggregationOperator": "Average", "AutoStop_TimeWindow": "06:00:00", "EnableClassic": false, "RequestScopes": { "ExcludedVMLists": [], "VMLists": [ "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/rg3/providers/Microsoft.ClassicCompute/virtualMachines/Clasyvm11", "/subscriptions/12345678-1111-2222-3333-1234567891234/resourceGroups/vmrg1/providers/Microsoft.Compute/virtualMachines/vm1" ] } }
Теги виртуальной машины
Вы также можете включить или исключить определенные виртуальные машины из запуска и остановки действий, задав теги параметров на самих виртуальных машинах. Чтобы добавить тег, перейдите к определенной виртуальной машине, выберите теги в меню слева и добавьте тег с именем ssv2excludevm
. Чтобы исключить эту виртуальную машину из действия запуска или остановки, задайте для этого нового тега true
значение . Чтобы включить виртуальную машину в действие, задайте для него значение false
. Это позволяет исключить определенные виртуальные машины без необходимости обновляться ExcludedVMLists
в конфигурации полезных данных.
Следующие шаги
Узнайте, как отслеживать состояние виртуальных машин Azure, управляемых функцией запуска и останова виртуальных машин версии 2, а также выполнять другие задачи по управлению, из статьи Управление функцией запуска и остановки виртуальных машин.