Типы модулей 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.
Примечание.
В настоящее время поддерживаются 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 в качестве дочерних для создания высокоуровневых рабочих процессов.
- Удобство модульного программирования.
Ограничения
- Нельзя создавать или изменять вне портала Azure.
- Для выполнения сложной логики может потребоваться действие Code, содержащее код PowerShell.
- Нельзя преобразовать в один из текстовых форматов. Также нельзя преобразовать текстовый модуль runbook в графический формат.
- Нет возможности отобразить или напрямую изменить код PowerShell, создаваемый графическим рабочим процессом. Вы можете просматривать код в любых действиях Code.
- Нельзя запустить runbook в гибридной рабочей роли Runbook для Linux. См. статью Автоматизация ресурсов в центре обработки данных или в облаке с помощью использования гибридной рабочей роли Runbook.
- Графические модули Runbook не могут быть цифровыми подписями.
Следующие шаги
- Дополнительные сведения о модулях Runbook PowerShell см. в руководстве по созданию модуля Runbook PowerShell.
- Дополнительные сведения о модулях Runbook рабочих процессов PowerShell см. в руководстве по созданию модуля Runbook рабочего процесса PowerShell.
- Дополнительные сведения о графических модулях Runbook см. в руководстве по созданию графического модуля Runbook.
- Дополнительные сведения о модулях Runbook Python см. в руководстве по созданию модуля Runbook Python.