Tipos de runbooks de Azure Automation

La característica de automatización de procesos de Azure Automation admite varios tipos de runbooks, tal como se define en la tabla siguiente. Para más información sobre el entorno de automatización de procesos, consulte Ejecución de un runbook en Azure Automation.

Tipo Descripción
Gráfico Runbook gráfico basado en Windows PowerShell, y creado y editado completamente en el editor gráfico de Azure Portal.
Flujo de trabajo gráfico de PowerShell Runbook gráfico basado en flujo de trabajo de Windows PowerShell, y creado y editado completamente en el editor gráfico de Azure Portal.
PowerShell Runbook de texto basado en scripting de Windows PowerShell.
Flujo de trabajo de PowerShell Runbook de texto basado en scripting de flujo de trabajo de Windows PowerShell.
Python Runbook de texto basado en scripting de Python.

Tenga en cuenta las siguientes consideraciones al determinar qué tipo usar para un runbook concreto.

  • No es posible convertir runbooks de tipo gráfico a texto o viceversa.
  • Existen limitaciones al utilizar runbooks de diferentes tipos como runbooks secundarios. Para más información, consulte Child runbooks in Azure Automation (Runbooks secundarios en Azure Automation).

Runbooks gráficos

Puede crear y editar runbooks gráficos y runbooks gráficos de flujo de trabajo de PowerShell mediante el editor gráfico de Azure Portal. Sin embargo, no puede crear o editar este tipo de runbooks con otra herramienta. Principales características de los runbooks gráficos:

  • Se exportan a archivos de la cuenta de Automation y se importan a otra cuenta de Automation.
  • Generan código de PowerShell.
  • Se pueden convertir a y desde runbooks gráficos de flujo de trabajo de PowerShell durante la importación.

Ventajas

  • Utilice modelos de creación visual para insertar, vincular y configurar.
  • Céntrese en cómo fluyen los datos por el proceso.
  • Represente visualmente los procesos de administración.
  • Incluya otros runbooks como runbooks secundarios para crear flujos de trabajo de nivel alto.
  • Anime a usar la programación modular.

Limitaciones

  • No puede crear o editar fuera de Azure Portal.
  • Puede requerir una actividad de código que contenga código de PowerShell para ejecutar una lógica compleja.
  • No puede convertir a uno de los formatos de texto, ni puede convertir un runbook de texto a un formato gráfico.
  • No puede ver ni modificar directamente el código de PowerShell que el flujo de trabajo gráfico crea. Puede ver el código que crea en las actividades de código.
  • No puede ejecutar runbooks en Linux Runbook Worker. Consulte Automatización de recursos en los centros de datos o nube con Hybrid Runbook Worker.
  • Los runbooks gráficos no se pueden firmar digitalmente.

Runbooks de PowerShell

Los runbooks de PowerShell están basados en Windows PowerShell. Puede modificar directamente el código del runbook con el editor de texto en el Portal de Azure. También puede usar cualquier editor de texto sin conexión e importar el runbook en Azure Automation.

La versión de PowerShell viene determinada por la versión del entorno de ejecución especificada (es decir, la versión preliminar 7.1 o 5.1). El servicio Azure Automation admite el entorno de ejecución de PowerShell más reciente.

El mismo espacio aislado de Azure y la instancia de Hybrid Runbook Worker pueden ejecutar runbooks de PowerShell 5.1 y PowerShell 7.1 en paralelo.

Nota

En el momento de la ejecución del runbook, si selecciona Versión del entorno de ejecución como 7.1 (versión preliminar) , se usan los módulos de PowerShell destinados a la versión del entorno de ejecución 7.1; igualmente, si selecciona Versión del entorno de ejecución como 5.1, se usan los módulos de PowerShell que tienen como destino la versión del entorno de ejecución 5.1.

Asegúrese de seleccionar la versión del entorno de ejecución adecuada para los módulos.

Por ejemplo: si está ejecutando un runbook para un escenario de automatización de SharePoint en la versión del entorno de ejecución7.1 (versión preliminar), importe el módulo en la versión del entorno de ejecución7.1 (versión preliminar); si por el contrario está ejecutando un runbook para un escenario de automatización de SharePoint en la versión del entorno de ejecución5.1, importe el módulo en la versión del entorno de ejecución5.1. En este caso, verá dos entradas para el módulo, una para la versión del entorno de ejecución7.1 (versión preliminar) y otra para la versión 5.1.

Tipos de runbook.

Actualmente, se admiten PowerShell 5.1 y 7.1 (versión preliminar).

Ventajas

  • Implemente toda la lógica compleja con código de PowerShell sin otras complejidades del flujo de trabajo de PowerShell.
  • Se inician con más rapidez que los runbooks de flujo de trabajo de PowerShell, ya que no necesitan compilarse antes de la ejecución.
  • Ejecute en Azure y en Hybrid Runbook Worker para Windows y Linux.

Limitaciones - versión 5.1

  • Debe estar familiarizado con el scripting de PowerShell.
  • Los runbooks no pueden usar el procesamiento paralelo para ejecutar varias acciones en paralelo.
  • Los runbooks no pueden usar los puntos de control para reanudar un runbook si se produce un error.
  • Solo puede incluir runbooks gráficos, de PowerShell y de flujo de trabajo de PowerShell como runbooks secundarios mediante el cmdlet Start-AzAutomationRunbook, que crea un trabajo.
  • Los runbooks no pueden usar la instrucción #Requires de PowerShell, no se admite en el espacio aislado de Azure ni en instancias de Hybrid Runbook Worker y provocarán un error en el trabajo.

Problemas conocidos: versión 5.1

A continuación se describen los problemas conocidos actuales con los runbooks de PowerShell:

  • Los runbooks de PowerShell no pueden recuperar un recurso de variable sin cifrar con un valor null.
  • Los runbooks de PowerShell no pueden recuperar un recurso de variable con *~* en el nombre.
  • Una operación Get-Process en un bucle de un runbook de PowerShell puede bloquearse después de más de 80 iteraciones.
  • Un runbook de PowerShell puede producir un error si intenta escribir una gran cantidad de datos en el flujo de salida a la vez. Puede evitar este problema si hace que el runbook genere únicamente la información necesaria para trabajar con objetos grandes. Por ejemplo, en lugar de usar Get-Process sin limitaciones, puede hacer que el cmdlet genere solo los parámetros necesarios como en Get-Process | Select ProcessName, CPU.

Limitaciones: 7.1 (versión preliminar)

  • Los cmdlets internos de PowerShell correspondientes a Azure Automation no se admiten en una instancia de Hybrid Runbook Worker de Linux. Debe importar el módulo automationassets al comienzo de su runbook de Python para acceder a las funciones de recursos compartidos (recursos) de la cuenta de Automation.
  • Para la versión del entorno de ejecución de PowerShell 7, las actividades del módulo no se extraen para los módulos importados.
  • El tipo de parámetro de runbook PSCredential no se admite en la versión del entorno de ejecución de PowerShell 7.
  • PowerShell 7.x no admite flujos de trabajo. Para obtener más información, consulte esto.
  • PowerShell 7.x no admite actualmente runbooks firmados.
  • La integración del control de código fuente no admite PowerShell 7.1. Además, los runbooks de PowerShell 7.1 en el control de código fuente se crean en la cuenta de Automation como Runtime 5.1.

Problemas conocidos: 7.1 (versión preliminar)

  • La ejecución de scripts secundarios mediante .\child-runbook.ps1 no se admite en esta versión preliminar. Solución alternativa: use Start-AutomationRunbook (cmdlet interno) o Start-AzAutomationRunbook (desde el módulo Az.Automation) para iniciar otro runbook desde el runbook primario.
  • Las propiedades de runbook que definen la preferencia de registro no se admiten en el entorno de ejecución de PowerShell 7.
    Solución alternativa: establezca explícitamente la preferencia al principio del runbook, tal como se indica a continuación:
        $VerbosePreference = "Continue"
    
        $ProgressPreference = "Continue"
    
  • Evite importar el módulo Az.Accounts a la versión 2.4.0 para el entorno de ejecución de PowerShell 7, ya que puede haber un comportamiento inesperado al usar esta versión en Azure Automation.
  • Es posible que encuentre problemas de formato con los flujos de salida de error para el trabajo que se ejecuta en el entorno de ejecución de PowerShell 7.
  • Al importar un módulo de PowerShell 7.1 que depende de otros módulos, es posible que el botón importar esté atenuado incluso cuando esté instalada la versión de PowerShell 7.1 del módulo dependiente. Por ejemplo, la versión 4.20.0 de Az.Compute depende de que Az.Accounts sea >= 2.6.0. Este problema se produce cuando un módulo dependiente equivalente en PowerShell 5.1 no cumple los requisitos de versión. Por ejemplo, la versión 5.1 de Az.Accounts era < 2.6.0.
  • Al iniciar el runbook de PowerShell 7 mediante el webhook, convierte automáticamente el parámetro de entrada del webhook en un JSON no válido.

Runbooks del flujo de trabajo de PowerShell

Los runbooks del flujo de trabajo de PowerShell son runbooks de texto basados en el flujo de trabajo de Windows PowerShell. Puede modificar directamente el código del runbook con el editor de texto en el Portal de Azure. También puede usar cualquier editor de texto sin conexión e importar el runbook en Azure Automation.

Nota

PowerShell 7.1 no admite runbooks de flujo de trabajo.

Ventajas

  • Implemente toda la lógica compleja con código del flujo de trabajo de PowerShell.
  • Use los puntos de control para reanudar la operación si se produce un error.
  • Utilice el procesamiento paralelo para realizar varias acciones en paralelo.
  • Se pueden incluir otros runbooks gráficos o de flujo de trabajo de PowerShell como runbooks secundarios para crear flujos de trabajo de alto nivel.

Limitaciones

  • Debe estar familiarizado con el flujo de trabajo de PowerShell.
  • Los runbooks deben tratar la complejidad adicional del flujo de trabajo de PowerShell como objetos deserializados.
  • Los runbooks tardan más en iniciarse que los runbooks de PowerShell, ya que deben compilarse antes de su ejecución.
  • Solo puede incluir runbooks de PowerShell como runbooks secundarios mediante el cmdlet Start-AzAutomationRunbook.
  • Los runbooks no se pueden ejecutar en una instancia de Hybrid Runbook Worker de Linux.

Runbooks de Python

Los runbooks de Python utilizan Python 2 y Python 3. Actualmente, los runbooks de Python 3 están en versión preliminar. Puede modificar directamente el código del runbook con el editor de texto en Azure Portal. También puede usar cualquier editor de texto sin conexión e importar el runbook en Azure Automation.

Los runbooks de Python 3 se admiten en las siguientes infraestructuras globales de Azure:

  • Azure Global
  • Azure Government

Ventajas

  • Use las sólidas bibliotecas de Python.
  • Se pueden ejecutar en Azure o en instancias de Hybrid Runbook Worker.
  • En el caso de Python 2, las instancias de Hybrid Runbook Worker de Windows son compatibles si Python2.7 está instalado.
  • Para los trabajos en la nube de Python 3, se admite la versión 3.8 de Python. Es posible que los scripts y paquetes de cualquier versión 3.x funcionen si el código es compatible con distintas versiones.
  • En el caso de los trabajos híbridos de Python 3 en máquinas Windows, puede instalar cualquier versión 3. x que desee usar.
  • Para los trabajos híbridos de Python 3 para Linux, depende de la versión de Python 3 instalada en el equipo para ejecutar DSC OMSConfig y Hybrid Worker para Linux. Las distintas versiones deberían funcionar si no hay cambios importantes en los contratos o firmas de método entre las versiones de Python 3.

Limitaciones

  • Debe estar familiarizado con el scripting de Python.
  • Para utilizar bibliotecas de terceros, debe importar los paquetes a la cuenta de Automation.
  • Usar el cmdlet Start-AutomationRunbook en PowerShell o en el flujo de trabajo de PowerShell para iniciar un runbook de Python 3 (versión preliminar) no funciona. Puede usar el cmdlet Start-AzAutomationRunbook desde el nódulo Az.Automation o el cmdlet Start-AzureRmAutomationRunbook del módulo AzureRm.Automation para solucionar esta limitación. 
  • Azure Automation no admite sys.stderr.
  • El paquete automationassets de Python no está disponible en pypi.org, por lo que tampoco se puede importar a una máquina Windows.

Varias versiones de Python

En el caso de Runbook Worker de Windows, al ejecutar un runbook de Python 2, este busca primero la variable de entorno PYTHON_2_PATH y valida si apunta a un archivo ejecutable válido. Por ejemplo, si la carpeta de instalación es C:\Python2, comprobaría si C:\Python2\python.exe es una ruta de acceso válida. Si no se encuentra, busca la variable de entorno PATH para realizar una comprobación similar.

Para Python 3, primero busca la variable env PYTHON_3_PATH y, a continuación, recurre a la variable de entorno PATH.

Cuando se usa solo una versión de Python, puede agregar la ruta de instalación a la variable PATH. Si quiere usar ambas versiones en Runbook Worker, establezca PYTHON_2_PATH y PYTHON_3_PATH en la ubicación del módulo para esas versiones.

Problemas conocidos

En el caso de los trabajos en la nube, a veces se produce un error en los trabajos de Python 3 con un mensaje de excepción invalid interpreter executable path. Podría ver esta excepción si el trabajo se retrasa y empieza más de 10 minutos tarde o usa Start-AutomationRunbook para iniciar runbooks de Python 3. Si el trabajo se retrasa, reiniciar el runbook debería ser suficiente. Los trabajos híbridos deben funcionar sin ningún problema si se usan los pasos siguientes:

  1. Cree una nueva variable de entorno denominada PYTHON_3_PATH y especifique la carpeta de instalación. Por ejemplo, si la carpeta de instalación es C:\Python3, debe agregarse esta ruta de acceso a la variable.
  2. Reinicie la máquina después de establecer la variable de entorno.

Pasos siguientes