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


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

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

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

Примечание.

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

Выбирая тип модуля runbook, принимайте во внимание следующие рекомендации.

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

Модули Runbook PowerShell

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

Версия PowerShell определяется указанной версией среды выполнения (то есть версией 7.2, 7.1 (предварительная версия) или 5.1.

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

Примечание.

  • В настоящее время версия среды выполнения PowerShell 7.2 поддерживается как для облачных, так и для гибридных рабочих мест во всех общедоступных регионах, кроме Центральной Индии, Центральной Оаэ, Центральной Италии, Северной Италии и Северной Германии.
  • При выполнении модуля Runbook при выборе версии среды выполнения в качестве версии 7.2 модули PowerShell, предназначенные для версии среды выполнения 7.2, используются и при выборе версии среды выполнения как 5.1 модули PowerShell, предназначенные для версии среды выполнения 5.1. Это относится к модулям и модулям Runbook PowerShell 7.1 (предварительная версия).

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

Например, если вы выполняете модуль Runbook для сценария автоматизации SharePoint в среде выполнения версии 7.1 (предварительная версия), импортируйте модуль в среде выполнения версии 7.1 (предварительная версия); если вы выполняете модуль runbook для сценария автоматизации SharePoint в среде выполнения 5.1, затем импортируйте модуль в runtime версии 5.1. В этом случае вы увидите две записи для модуля, одну для среды выполнения версии 7.1 (предварительная версия) и другую для 5.1.

Типы runbook.

Примечание.

В настоящее время поддерживаются PowerShell 5.1, PowerShell 7.1 (предварительная версия) и PowerShell 7.2.

Достоинства

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

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

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

Ограничения

Примечание.

В настоящее время версия среды выполнения PowerShell 7.2 поддерживается как для облачных, так и для гибридных рабочих мест во всех общедоступных регионах, кроме Центральной Индии, Центральной Оаэ, Центральной Италии, Северной Италии и Северной Германии.

  • Для версии среды выполнения PowerShell 7.2 действия модуля не извлекаются для импортированных модулей. Используйте расширение служба автоматизации Azure для VS code, чтобы упростить процесс разработки модуля Runbook.
  • PowerShell 7.x не поддерживает рабочие процессы. Дополнительные сведения см. в рабочем процессе PowerShell.
  • Сейчас PowerShell 7.x не поддерживает подписанные модули runbook.
  • Интеграция системы управления версиями не поддерживает PowerShell 7.2. Кроме того, модули Runbook PowerShell 7.2 в системе управления версиями создаются в учетной записи службы автоматизации в качестве среды выполнения 5.1.
  • По умолчанию устанавливается модуль Az 8.3.0. Полный список модулей компонентов выбранной версии модуля Az отображается после повторной настройки версии Az с помощью портал Azure или API.
  • Импортированный модуль PowerShell 7.2 будет проверен во время выполнения задания. Убедитесь, что все зависимости выбранного модуля также импортируются для успешного выполнения задания.
  • Модуль Runbook 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

      # 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

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

Примечание.

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

Достоинства

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

Ограничения

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

Runbook PowerShell и Python

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

В настоящее время версия среды выполнения Python 3.10 (предварительная версия) поддерживается для облачных и гибридных заданий во всех общедоступных регионах, за исключением Австралии Central2, Кореи, Южной Кореи, Южной Швеции, Jio India Central, Бразилии SouthEast, Центральной Индии, Западной Индии, центрального региона ОАЭ и облака gov.

Достоинства

Примечание.

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

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

Ограничения

Ниже приведены ограничения модулей Runbook Python

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

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

Применимо для гибридных рабочих ролей Windows. В случае рабочей роли Runbook на Windows, при запуске модуля 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 для запуска модулей Runbook Python 3.8. Если задание отложено, должно быть достаточно перезапуска модуля runbook.

графические модули runbook;

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

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

Достоинства

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

Ограничения

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