Inicio de un runbook en Azure AutomationStart a runbook in Azure Automation

La tabla siguiente le ayuda a determinar el método para iniciar un runbook en Azure Automation que sea más adecuado para su escenario concreto.The following table helps you determine the method to start a runbook in Azure Automation that is most suitable to your particular scenario. Este artículo incluye detalles acerca de cómo iniciar un runbook con Azure Portal y Windows PowerShell.This article includes details on starting a runbook with the Azure portal and with Windows PowerShell. En otra documentación a la que puede acceder desde los siguientes vínculos se proporcionan detalles sobre los otros métodos.Details on the other methods are provided in other documentation that you can access from the links below.

MétodoMethod CaracterísticasCharacteristics
Azure PortalAzure portal
  • Método más sencillo con la interfaz de usuario interactiva.Simplest method with interactive user interface.
  • Forma para proporcionar valores de parámetro simples.Form to provide simple parameter values.
  • Seguimiento sencillo del estado del trabajo.Easily track job state.
  • Acceso autenticado con inicio de sesión de Azure.Access authenticated with Azure sign in.
  • Windows PowerShellWindows PowerShell
  • Permite llamar desde la línea de comandos con los cmdlets de Windows PowerShell.Call from command line with Windows PowerShell cmdlets.
  • Puede incluirse en una solución automatizada con varios pasos.Can be included in automated solution with multiple steps.
  • La solicitud se autentica con el certificado o el usuario de OAuth principal/servicio principal.Request is authenticated with certificate or OAuth user principal / service principal.
  • Permite proporcionar valores de parámetro simples y complejos.Provide simple and complex parameter values.
  • Realizar el seguimiento del estado del trabajo.Track job state.
  • Responder a la necesidad del cliente para admitir los cmdlets de PowerShell.Client required to support PowerShell cmdlets.
  • API de Azure AutomationAzure Automation API
  • El método más flexible, pero también más complejo.Most flexible method but also most complex.
  • Permite llamar desde cualquier código personalizado que pueda realizar solicitudes HTTP.Call from any custom code that can make HTTP requests.
  • La solicitud se autentica con el certificado o el usuario de OAuth principal/servicio principal.Request authenticated with certificate, or Oauth user principal / service principal.
  • Permite proporcionar valores de parámetro simples y complejos.Provide simple and complex parameter values. Si va a llamar a un runbook de Python mediante la API, la carga de JSON se tiene que serializar.If you're calling a Python runbook using the API, the JSON payload must be serialized.
  • Realizar el seguimiento del estado del trabajo.Track job state.
  • WebhooksWebhooks
  • Permite iniciar el runbook desde una única solicitud HTTP.Start runbook from single HTTP request.
  • Autenticado con el token de seguridad de la dirección URL.Authenticated with security token in URL.
  • El cliente no puede reemplazar los valores de parámetro especificados al crear webhook.Client can't override parameter values specified when webhook created. El runbook puede definir un único parámetro que se rellena con los detalles de la solicitud HTTP.Runbook can define single parameter that is populated with the HTTP request details.
  • No tiene capacidad de realizar un seguimiento del estado del trabajo a través de la dirección URL de webhook.No ability to track job state through webhook URL.
  • Respuesta a una alerta de AzureRespond to Azure Alert
  • Permite iniciar un runbook en respuesta a una alerta de Azure.Start a runbook in response to Azure alert.
  • Permite configurar webhook para el runbook y vincular a la alerta.Configure webhook for runbook and link to alert.
  • Autenticado con el token de seguridad de la dirección URL.Authenticated with security token in URL.
  • ProgramaciónSchedule
  • Permite iniciar automáticamente el runbook en una programación según la hora, diaria, semanal o mensual.Automatically start runbook on hourly, daily, weekly, or monthly schedule.
  • Permite manipular la programación a través de Azure Portal, los cmdlets de PowerShell o la API de Azure.Manipulate schedule through Azure portal, PowerShell cmdlets, or Azure API.
  • Permite proporcionar valores de parámetro que se usarán con la programación.Provide parameter values to be used with schedule.
  • Desde otro RunbookFrom Another Runbook
  • Permite usar un runbook como una actividad en otro runbook.Use a runbook as an activity in another runbook.
  • Es útil para la funcionalidad utilizada por varios runbooks.Useful for functionality used by multiple runbooks.
  • Permite proporcionar valores de parámetro a un runbook secundario y usar la salida de un runbook principal.Provide parameter values to child runbook and use output in parent runbook.
  • La siguiente imagen ilustra el proceso paso a paso detallado en el ciclo de vida de un runbook.The following image illustrates detailed step-by-step process in the life cycle of a runbook. En ella figuran las distintas formas de iniciar un runbook en Azure Automation, los componentes requeridos para que Hybrid Runbook Worker ejecute runbooks de Azure Automation y las interacciones entre los distintos componentes.It includes different ways a runbook starts in Azure Automation, which components required for Hybrid Runbook Worker to execute Azure Automation runbooks and interactions between different components. Para obtener información sobre cómo ejecutar runbooks de Automation en su centro de datos, consulte Trabajos híbridos de runbookTo learn about executing Automation runbooks in your datacenter, refer to hybrid runbook workers

    Arquitectura de runbook

    Inicio de un runbook con Azure PortalStart a runbook with the Azure portal

    1. En Azure Portal, seleccione Automation y, a continuación, haga clic en el nombre de una cuenta de Automation.In the Azure portal, select Automation and then click the name of an automation account.
    2. En el menú central, seleccione Runbooks.On the Hub menu, select Runbooks.
    3. En la página Runbooks, seleccione un runbook y haga clic en Iniciar.On the Runbooks page, select a runbook, and then click Start.
    4. Si el runbook tiene parámetros, se le pide que proporcione los valores de cada parámetro con un cuadro de texto.If the runbook has parameters, you're prompted to provide values with a text box for each parameter. Para más información sobre los parámetros, consulte Parámetros de runbook.For more information on parameters, see Runbook Parameters.
    5. En la página Trabajo, puede ver el estado del trabajo de runbook.On the Job page, you can view the status of the runbook job.

    Inicio de un runbook con PowerShellStart a runbook with PowerShell

    Puede utilizar Start-AzureRmAutomationRunbook para iniciar un runbook con Windows PowerShell.You can use the Start-AzureRmAutomationRunbook to start a runbook with Windows PowerShell. El código de ejemplo siguiente inicia un runbook llamado Test-Runbook.The following sample code starts a runbook called Test-Runbook.

    Start-AzureRmAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
    

    Start-AzureRmAutomationRunbook devuelve un objeto de trabajo que puede usar para realizar un seguimiento de su estado una vez que se inicia el runbook.Start-AzureRmAutomationRunbook returns a job object that you can use to track its status once the runbook is started. Después, puede utilizar este objeto de trabajo con Get-AzureRmAutomationJob para determinar el estado del trabajo y con Get-AzureRmAutomationJobOutput para obtener su salida.You can then use this job object with Get-AzureRmAutomationJob to determine the status of the job and Get-AzureRmAutomationJobOutput to get its output. El código de ejemplo siguiente inicia un runbook llamado Test-Runbook, espera hasta que se ha completado y después muestra la salida.The following sample code starts a runbook called Test-Runbook, waits until it has completed, and then displays its output.

    $runbookName = "Test-Runbook"
    $ResourceGroup = "ResourceGroup01"
    $AutomationAcct = "MyAutomationAccount"
    
    $job = Start-AzureRmAutomationRunbook –AutomationAccountName $AutomationAcct -Name $runbookName -ResourceGroupName $ResourceGroup
    
    $doLoop = $true
    While ($doLoop) {
       $job = Get-AzureRmAutomationJob –AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup
       $status = $job.Status
       $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
    }
    
    Get-AzureRmAutomationJobOutput –AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup –Stream Output
    

    Si el runbook requiere parámetros, tiene que proporcionarlos como una tabla hash.If the runbook requires parameters, then you must provide them as a hashtable. La clave de la tabla hash tiene que coincidir con el nombre del parámetro y el valor es el valor del parámetro.The key of the hashtable must match the parameter name and the value is the parameter value. En el ejemplo siguiente se muestra cómo iniciar un runbook con dos parámetros de cadena denominados FirstName y LastName, un número entero denominado RepeatCount y un parámetro booleano denominado Show.The following example shows how to start a runbook with two string parameters named FirstName and LastName, an integer named RepeatCount, and a boolean parameter named Show. Para más información sobre los parámetros, consulte a continuación Parámetros de runbook.For more information on parameters, see Runbook Parameters below.

    $params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
    Start-AzureRmAutomationRunbook –AutomationAccountName "MyAutomationAccount" –Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" –Parameters $params
    

    Parámetros de runbookRunbook parameters

    Cuando se inicia un runbook desde Azure Portal o Windows PowerShell, la instrucción se envía a través del servicio web Azure Automation.When you start a runbook from the Azure portal or Windows PowerShell, the instruction is sent through the Azure Automation web service. Este servicio no admite parámetros con tipos de datos complejos.This service doesn't support parameters with complex data types. Si necesita proporcionar un valor para un parámetro complejo, se debe llamar en línea desde otro runbook, tal como se describe en Runbooks secundarios en Azure Automation.If you need to provide a value for a complex parameter, then you must call it inline from another runbook as described in Child runbooks in Azure Automation.

    El servicio web de Azure Automation proporciona una funcionalidad especial para parámetros que usan ciertos tipos de datos, tal como se describe en las secciones siguientes:The Azure Automation web service provides special functionality for parameters using certain data types as described in the following sections:

    Valores con nombreNamed values

    Si el parámetro tiene el tipo de datos [object], puede usar el siguiente formato JSON para enviar una lista de valores con nombre: {"Nombre1":Valor1, "Nombre2":Valor2, "Nombre3":Valor3} .If the parameter is data type [object], then you can use the following JSON format to send it a list of named values: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Estos valores deben ser tipos simples.These values must be simple types. El runbook recibe el parámetro como un elemento PSCustomObject con propiedades que corresponden a cada valor con nombre.The runbook receives the parameter as a PSCustomObject with properties that correspond to each named value.

    Considere el siguiente runbook de prueba que acepta un parámetro denominado user.Consider the following test runbook that accepts a parameter called user.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][object]$user
       )
        $userObject = $user | ConvertFrom-JSON
        if ($userObject.Show) {
            foreach ($i in 1..$userObject.RepeatCount) {
                $userObject.FirstName
                $userObject.LastName
            }
        }
    }
    

    El texto siguiente podría utilizarse para el parámetro de usuario.The following text could be used for the user parameter.

    {FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
    

    Esta acción devuelve la siguiente salida:This results in the following output:

    Joe
    Smith
    Joe
    Smith
    

    MatricesArrays

    Si el parámetro es una matriz como [array] o [string], puede usar entonces el siguiente formato JSON para enviarle una lista de valores: [Value1,Value2,Value3] .If the parameter is an array such as [array] or [string[]], then you can use the following JSON format to send it a list of values: [Value1, Value2, Value3]. Estos valores deben ser tipos simples.These values must be simple types.

    Considere el siguiente runbook de prueba que acepta un parámetro denominado user.Consider the following test runbook that accepts a parameter called user.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][array]$user
       )
        if ($user[3]) {
            foreach ($i in 1..$user[2]) {
                $ user[0]
                $ user[1]
            }
        }
    }
    

    El texto siguiente podría utilizarse para el parámetro de usuario.The following text could be used for the user parameter.

    ["Joe","Smith",2,true]
    

    Esta acción devuelve la siguiente salida:This results in the following output:

    Joe
    Smith
    Joe
    Smith
    

    CredencialesCredentials

    Si el parámetro es de tipo de datos PSCredential, puede proporcionar el nombre de un recurso de credencialesde Azure Automation.If the parameter is data type PSCredential, then you can provide the name of an Azure Automation credential asset. El runbook recupera la credencial con el nombre que especifique.The runbook retrieves the credential with the name that you specify.

    Considere el siguiente runbook de prueba que acepta un parámetro denominado credential.Consider the following test runbook that accepts a parameter called credential.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][PSCredential]$credential
       )
       $credential.UserName
    }
    

    Podría utilizar el siguiente texto para el parámetro de usuario suponiendo que ha habido un recurso de credenciales denominado My Credential.The following text could be used for the user parameter assuming that there was a credential asset called My Credential.

    My Credential
    

    Suponiendo que el nombre de usuario de la credencial era jsmith, la salida resultante sería la siguiente:Assuming the username in the credential was jsmith, this results in the following output:

    jsmith
    

    Pasos siguientesNext steps

    • La arquitectura de runbook de este artículo proporciona información general sobre la administración de recursos en Azure y entornos locales con Hybrid Runbook Worker.The runbook architecture in current article provides a high-level overview of runbooks managing resources in Azure and on-premises with the Hybrid Runbook Worker. Para obtener información sobre cómo ejecutar runbooks de Automation en su centro de datos, consulte Trabajos híbridos de runbook.To learn about executing Automation runbooks in your datacenter, refer to Hybrid Runbook Workers.
    • Para aprender más sobre la creación runbooks modulares para usarse por otros runbooks para funciones específicas o comunes, consulte Runbooks secundarios.To learn more about the creating modular runbooks to be used by other runbooks for specific or common functions, refer to Child Runbooks.
    • Para obtener más información sobre PowerShell, incluidos los módulos de referencia de lenguaje y aprendizaje, consulte la documentación de PowerShell.For more information on PowerShell, including language reference and learning modules, refer to the PowerShell Docs.