Поделиться через


Типы модулей Runbook в службе автоматизации Azure

Функциональность автоматизации процессов Azure Automation поддерживает несколько типов ранбуков, как указано в следующей таблице.

Тип Описание
PowerShell
(рекомендуемые)
Текстовый модуль runbook, основанный на скриптах Windows PowerShell. В настоящее время поддерживаются версии PowerShell 7.4 и PowerShell 5.1. Так как PowerShell 7.1 и PowerShell 7.2 больше не поддерживаются родительским продуктом PowerShell, рекомендуется создавать модули Runbook в долгосрочной поддерживаемой версии PowerShell 7.4.
Рабочий процесс PowerShell Текстовый модуль runbook, основанный на скриптах рабочего процесса Windows PowerShell.
Питон
(рекомендуемые)
Текстовый операционный справочник, основанный на скриптах Python. В настоящее время поддерживается версия Python 3.10. Так как Python 2.7 и Python 3.8 больше не поддерживаются родительским продуктом Python, рекомендуется создавать модули Runbook в Python 3.10.
Графический Графический модуль runbook, который основан на Windows PowerShell. Создать и изменить его можно в графическом редакторе на портале Azure.
Графический модуль рабочего процесса PowerShell Графический модуль runbook, который основан на рабочем процессе Windows PowerShell. Создать и изменить его можно в графическом редакторе на портале Azure.

Операционная среда автоматизации процессов описана в руководстве по выполнению модуля runbook в службе автоматизации Azure.

Примечание.

Служба автоматизации Azure будет соответствовать жизненному циклу поддержки версий PowerShell и Python в соответствии с временными шкалами, опубликованными родительскими продуктами, PowerShell и Python соответственно. Рекомендуется использовать модули Runbook с поддерживаемыми языковыми версиями.

При определении типа, используемого для конкретного модуля Runbook, следует учитывать следующие рекомендации.

  • Нельзя преобразовывать runbook из графического типа в текстовый и обратно.
  • При использовании других типов дочерних модулей runbook могут действовать некоторые ограничения. Дополнительные сведения см. в статье Дочерние модули Runbook в службе автоматизации Azure.

Runbook'и PowerShell

Runbook'и PowerShell основаны на Windows PowerShell. Вы напрямую редактируете код модуля Runbook, используя текстовый редактор на портале Azure. Кроме того, можно использовать любой автономный текстовый редактор и импортировать Runbook в службу автоматизации Azure.

Версия PowerShell определяется указанной версией среды выполнения .

Одна и та же песочница Azure и гибридный исполнитель Runbook могут одновременно выполнять несколько runbook'ов PowerShell, предназначенных для разных версий среды выполнения.

Примечание.

  • В настоящее время версия среды выполнения PowerShell 7.4 поддерживается для облачных и гибридных заданий во всех общедоступных регионах, кроме облаков Юго-Восточной Бразилии и Gov.
  • При выполнении runbook при выборе версии среды выполнения в качестве версии 7.4 модули PowerShell, предназначенные для версии среды выполнения 7.4, используются, а если выбрана версия среды выполнения5.1, используется модуль PowerShell, предназначенный для версии среды выполнения 5.1.

Убедитесь, что выбрана правильная версия среды выполнения для модулей.

Например, если вы выполняете модуль Runbook для сценария автоматизации SharePoint в среде выполнения версии7.4, импортируйте модуль в среде выполнения версии7.4; Если вы выполняете модуль Runbook для сценария автоматизации SharePoint в среде выполнения версии5.1, импортируйте модуль в среду выполнения версии5.1.

Достоинства

  • Реализация сложной логики с помощью кода PowerShell без дополнительного усложнения рабочего процесса PowerShell.
  • Запускаются быстрее, чем руководства выполнения рабочих процессов PowerShell, так как не требуют предварительной компиляции.
  • Запускается в Azure и на гибридных рабочих узлах Runbook как для Windows, так и для Linux.

Ограничения и известные проблемы

Ниже приведены текущие ограничения и известные проблемы с ранбуками PowerShell:

Ограничения

Примечание.

В настоящее время версия среды выполнения PowerShell 7.4 поддерживается для облачных и гибридных заданий во всех общедоступных регионах, кроме облаков Юго-Восточной Бразилии и Gov.

  • Для версии среды выполнения PowerShell 7.4 действия модуля не извлекаются для импортированных модулей. Используйте расширение службы автоматизации Azure для VS Code, чтобы упростить процесс разработки модуля Runbook.
  • PowerShell 7.x не поддерживает рабочие процессы. Более подробную информацию см. в рабочем процессе PowerShell.
  • Сейчас PowerShell 7.x не поддерживает подписанные runbook.
  • Интеграция системы управления версиями не поддерживает PowerShell 7.4. Кроме того, модули Runbook PowerShell 7.4 в системе управления версиями создаются в учетной записи службы автоматизации в качестве среды выполнения 5.1.
  • По умолчанию устанавливается модуль Az 12.3.0. Полный список модулей компонентов выбранной версии модуля Az отображается после повторной настройки версии Az с помощью портал Azure или API.
  • Импортированный модуль PowerShell 7.4 будет проверен во время выполнения задания. Убедитесь, что все зависимости выбранного модуля также импортируются для успешного выполнения задания.
  • Рабочая книга Azure не поддерживает Start-Job с -credential.
  • Azure не поддерживает все входные параметры PowerShell. Подробнее.

Известные проблемы

  • Модули Runbook, которые зависят от внутренних путей файлов, таких как C:\modules, могут завершиться сбоем из-за изменений в инфраструктуре бэкэнда службы. Измените код runbook, чтобы гарантировать отсутствие зависимостей от внутренних путей к файлам и получение необходимых сведений о модуле с помощью Get-ChildItem .

  • Get-AzStorageAccountкомандлет может завершиться ошибкой: Get-AzStorageAccountкоманда была найдена в модулеAz.Storage, но модуль не удалось загрузить.

  • Выполнение дочерних скриптов .\child-runbook.ps1 не поддерживается.
    Обходное решение. Используйте Start-AutomationRunbook (внутренний командлет) или Start-AzAutomationRunbook (из модуля Az.Automation ) для запуска другого модуля Runbook из родительского модуля Runbook.

  • При использовании модуля ExchangeOnlineManagement версии: 3.0.0 или более поздней, вы можете столкнуться с ошибками. Чтобы устранить проблему, убедитесь, что вы в явном виде загружаете модули PowerShellGet и PackageManagement.

  • При использовании командлета New-AzAutomationVariable в модуле Az.Automation для загрузки переменной типа объекта операция не выполняется как ожидается. Обходной путь. Преобразование объекта в строку JSON с помощью командлета ConvertTo-Json и отправки переменной со строкой JSON в качестве значения. Это решение обеспечивает правильную обработку переменной в среде служба автоматизации Azure в виде строки JSON.

    Пример . Создание объекта PowerShell с хранимыми сведениями о виртуальных машинах Azure

    azurepowershell
    
    # Retrieve Azure virtual machines with status information for the 'northeurope' region 
    $AzVM = Get-AzVM -Status | Where-Object {$_.Location -eq "northeurope"} 
    
    $VMstopatch = @($AzVM).Id 
    
    # Create an Azure Automation variable (This cmdlet will not fail, but the variable may not work as intended when used in the runbook.) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $VMstopatch 
    
    # Convert the object to a JSON string 
    $jsonString = $VMstopatch | ConvertTo-Json 
    
    # Create an Azure Automation variable with a JSON string value (works effectively within the automation runbook) 
    New-AzAutomationVariable -ResourceGroupName "mrg" -AutomationAccountName "mAutomationAccount2" -Name "complex1" -Encrypted $false -Value $jsonString 
    

Модули Runbook рабочих процессов PowerShell

Руководства рабочих процессов PowerShell — это текстовые руководства, основанные на рабочем процессе Windows PowerShell. Вы напрямую редактируете код модуля Runbook, используя текстовый редактор на портале Azure. Кроме того, можно использовать любой автономный текстовый редактор и импортировать Runbook в службу автоматизации Azure.

Примечание.

PowerShell 7.1 (предварительная версия) и PowerShell 7.2 не поддерживают рунбуки рабочих процессов.

Достоинства

  • Реализация сложной логики с помощью кода рабочего процесса PowerShell.
  • Использование контрольных точек для возобновления операции в случае ошибки.
  • Использование параллельной обработки для одновременного выполнения нескольких действий.
  • Возможность использования других графических модулей runbook и модулей runbook рабочих процессов PowerShell в качестве дочерних для создания высокоуровневых рабочих процессов.

Ограничения

  • Рабочий процесс PowerShell не поддерживается в версиях PowerShell 7+. Поэтому устаревшие рабочие книги нельзя обновить.
  • Неэффективная обработка параллельного выполнения по сравнению с более новыми версиями PowerShell 7+.
  • Рабочий процесс PowerShell внутренне работает с несколькими процессами. Поэтому модули, доступные в одном процессе, могут быть недоступны в другом и вызывать исключения, такие как команда не найдена.
  • Модули runbook должны справляться с усложнениями рабочего процесса PowerShell, например с десериализованными объектами.
  • Runbooks запускаются дольше, чем runbooks на PowerShell, так как требуют предварительной компиляции.
  • Можно включать только PowerShell runbook'ы в качестве дочерних runbook'ов с помощью командлета Start-AzAutomationRunbook.
  • Запуск runbook невозможно на гибридной рабочей роли для Linux.

Руководства Python для автоматизации

Модули Runbook Python компилируются в Python 3.10. Вы можете непосредственно редактировать код модуля Runbook, используя текстовый редактор в портале Azure. Кроме того, можно использовать любой автономный текстовый редактор и импортировать модуль runbook в службу автоматизации Azure. Python 2.7 и Python 3.8 больше не поддерживаются родительским продуктом и рекомендуется создавать модули Runbook в версии среды выполнения Python 3.10.

В настоящее время версия среды выполнения Python 3.10 поддерживается для облачных и гибридных заданий во всех общедоступных регионах, кроме облаков Юго-Восточной Бразилии и Gov.

Достоинства

Примечание.

Импорт пакета Python может занять несколько минут.

  • Использует надежные библиотеки Python.
  • Можно выполнять в Azure или на гибридных рабочих узлах Runbook.
  • Скрипты и пакеты из любой версии 3.x могут работать, если код совместим в разных версиях.
  • Для гибридных заданий Python 3.10 на компьютерах Windows можно установить любую версию 3.x, которую вы можете использовать.
  • Для гибридных заданий Python 3.10 на компьютерах Linux мы зависим от версии Python 3, установленной на компьютере, для выполнения DSC OMSConfig и гибридного рабочего агента Linux. Разные версии должны работать, если в сигнатурах методов или контрактах между версиями Python 3 нет критических изменений.

Ограничения

Ограничения модулей Runbook Python:

  • В настоящее время для модулей Python 3.10 поддерживаются только файлы колес, предназначенные для ос Linux cp310. Подробнее
  • Интеграция системы управления версиями не поддерживается.
  • Пользовательские пакеты для Python 3.10 валидируются только во время выполнения задания. Ожидается, что задание завершится ошибкой, если пакет несовместим в среде выполнения или если необходимые зависимости пакетов не импортируются в учетную запись службы автоматизации.
  • В настоящее время Python 3.10 runbooks поддерживаются только через портал Azure и REST API.

Несколько версий Python

Это применимо для гибридных работников Windows. В случае Windows Runbook Worker, при запуске runbook на Python 2, сначала проверяется наличие переменной среды PYTHON_2_PATH и оценивается, указывает ли она на допустимый исполняемый файл. Например, если папка установки — C:\Python2, проверяется, является ли C:\Python2\python.exe допустимым путем. Если ничего не найдено, ищется переменная среды PATH для аналогичной проверки.

В случае с Python 3, сначала выполняется поиск переменной среды PYTHON_3_PATH, а затем проверяется переменная среды PATH.

При использовании только одной версии Python можно добавить путь установки к переменной PATH. Если вы хотите использовать обе версии на узле Runbook, установите в PYTHON_2_PATH и PYTHON_3_PATH расположение модуля для этих версий.

Известные проблемы

Для облачных заданий программы на Python 3.8 иногда завершаются с сообщением об исключении invalid interpreter executable path. Это исключение может появиться, если задание задерживается на более чем 10 минут или при использовании Start-AutomationRunbook для запуска модулей Python 3.8 Runbook. Если задание отложено, должно быть достаточно перезапуска модуля runbook.

графические ранбуки

Вы можете создавать и редактировать графические инструктивные модули и графические инструктивные модули рабочего процесса PowerShell с помощью графического редактора на портале Azure. Однако вы не можете создать или изменить этот тип рабочей книги с помощью другого инструмента. Основные возможности графических модулей runbook:

  • Файлы экспортируются из учетной записи службы автоматизации, а затем импортируются в другую учетную запись службы автоматизации.
  • Создание кода PowerShell.
  • Конвертируются в графические runbook'и рабочего процесса PowerShell и обратно в процессе импорта.

Достоинства

  • Использование визуальной модели редактирования insert-link-configure.
  • Сосредоточьтесь на том, как данные проходят через процесс.
  • Визуальное представление процессов управления.
  • Включение других модулей runbook в качестве дочерних для создания высокоуровневых рабочих процессов.
  • Поощряйте модульное программирование.

Ограничения

  • Нельзя создавать или изменять вне портала Azure.
  • Для выполнения сложной логики может потребоваться кодовая активность, содержащая код PowerShell.
  • Нельзя преобразовать в один из текстовых форматов. Также нельзя преобразовать текстовый модуль runbook в графический формат.
  • Нет возможности отобразить или напрямую изменить код PowerShell, создаваемый графическим рабочим процессом. Вы можете просматривать код, который создаете, в любых мероприятиях по программированию.
  • Нельзя запустить Runbook на гибридном рабочем агенте для Linux. См. статью Автоматизация ресурсов в центре обработки данных или в облаке с помощью использования гибридной рабочей роли Runbook.
  • Графические runbook не могут быть цифрово подписаны.

Следующие шаги