В моей прошлой статье мы говорили о том, как автоматизировать включение/выключение Azure ВМ по расписанию при помощи тегов (Resource Tags). В данной статье мы обсудим как же автоматизировать работу с самими тегами. Можно, конечно, управлять тегами через портал Microsoft Azure, но это грустно и неэффективно.
Представляю вам очередную функцию моего Azure PowerShell модуля - Add-AzVmTag. Функция поддерживает 2 набора параметров (Parameter Sets):
1. Для добавления одного произвольного тега.
-Tag - Название тега. -Value - Значение тега. -Force - флаг, если такой тег уже существует, переписать его новым значением.
2. Для задания сразу двух тегов PowerOn/PowerOff.
-TagPowerOn - Время включения ВМ. -TagPowerOff - Время выключения ВМ.
Обязательный параметр -VM - это ВМ, возвращаемые функцией Get-AzureRmVM. Кому интересно, могут посмотреть справку по команде Get-AzureRmVM.
PS C:\> Get-Help Get-AzureRmVM -Full
Если вы не укажете вообще никаких параметров, функция добавит всем переданным ВМ PowerOn/PowerOff теги и задаст им значения по умолчанию (вы можете изменить их на ваши значения до импорта модуля).
Несколько приёмов по выборке ВМ по критерию (например, машины у которых время включения раньше шести утра или вообще не задано).
Обратите внимание, что теги PowerOn/PowerOff всегда задаются в паре, даже если вы указываете только один из них.
Если вы хотите задать только один из Power-тегов, не меняя другой на значение по умолчанию, воспользуйтесь вторым набором параметров -Tag/-Value. Только учтите, что в данном случае значение тега не проверяется на валидность.
Если вы попытаетесь добавить существующий тег без параметра -Force, то получите StatusCode «TagExists».
И ещё один момент прежде чем вы начнёте использовать функцию. Параметр -Tag умышленно ограничен списком допустимых значений с помощью атрибута ValidateSet.
Это сделано для избежания ошибок в названиях тегов и для использования Intellisense.
Вы можете отредактировать этот список по своему усмотрению или вообще закомментировать, если хотите разрешить свободный ввод названия тегов.