Avvio di un Runbook in Automazione di AzureStarting a runbook in Azure Automation

La tabella seguente consente di determinare la modalità di avvio di un Runbook in Automazione di Azure più appropriata per il proprio scenario.The following table will help you determine the method to start a runbook in Azure Automation that is most suitable to your particular scenario. Questo articolo include informazioni dettagliate sull'avvio di un Runbook con il portale di Azure e con Windows PowerShell.This article includes details on starting a runbook with the Azure portal and with Windows PowerShell. Le informazioni sulle altre modalità sono contenute in altri documenti accessibili dai collegamenti seguenti.Details on the other methods are provided in other documentation that you can access from the links below.

METODOMETHOD CARATTERISTICHECHARACTERISTICS
Portale di AzureAzure Portal
  • Metodo più semplice con interfaccia utente interattiva.Simplest method with interactive user interface.
  • Modulo per specificare valori di parametri semplici.Form to provide simple parameter values.
  • Facilità di controllo dello stato dei processi.Easily track job state.
  • Accesso autenticato con l'accesso di Azure.Access authenticated with Azure logon.
  • Windows PowerShellWindows PowerShell
  • Chiamata mediante cmdlet di Windows PowerShell nella riga di comandi.Call from command line with Windows PowerShell cmdlets.
  • Possibilità di inclusione in una soluzione automatizzata con più passaggi.Can be included in automated solution with multiple steps.
  • Autenticazione della richiesta con un certificato oppure con un'entità utente/entità servizio OAuth.Request is authenticated with certificate or OAuth user principal / service principal.
  • Possibilità di specificare valori di parametri semplici e complessi.Provide simple and complex parameter values.
  • Possibilità di controllare lo stato dei processi.Track job state.
  • Obbligo per il client di supporto dei cmdlet di PowerShell.Client required to support PowerShell cmdlets.
  • API di Automazione di AzureAzure Automation API
  • Modalità più flessibile, ma anche più complessa.Most flexible method but also most complex.
  • Possibilità di chiamata da qualsiasi codice personalizzato in grado di creare richieste HTTP.Call from any custom code that can make HTTP requests.
  • Autenticazione della richiesta con un certificato oppure con un'entità utente/entità servizio OAuth.Request authenticated with certificate, or Oauth user principal / service principal.
  • Possibilità di specificare valori di parametri semplici e complessi.Provide simple and complex parameter values.
  • Possibilità di controllare lo stato dei processi.Track job state.
  • WebhookWebhooks
  • Avvio di Runbook da una singola richiesta HTTP.Start runbook from single HTTP request.
  • Autenticazione con token di sicurezza nell'URL.Authenticated with security token in URL.
  • Impossibilità per il client di eseguire l'override dei valori di parametri specificati al momento della creazione del webhook.Client cannot override parameter values specified when webhook created. Possibilità per il Runbook di definire un singolo parametro popolato con i dettagli della richiesta HTTP.Runbook can define single parameter that is populated with the HTTP request details.
  • Impossibilità di tenere traccia dello stato dei processi tramite URL webhook.No ability to track job state through webhook URL.
  • Risposta all'avviso di AzureRespond to Azure Alert
  • Avviare un runbook in risposta all'avviso di Azure.Start a runbook in response to Azure alert.
  • Configurare webhook per runbook e collegare all'avviso.Configure webhook for runbook and link to alert.
  • Autenticazione con token di sicurezza nell'URL.Authenticated with security token in URL.
  • PianificareSchedule
  • Avvio automatico dei runbook in base a una pianificazione oraria, giornaliera, settimanale o mensile.Automatically start runbook on hourly, daily, weekly, or monthly schedule.
  • Modifica della pianificazione tramite il portale di Azure, i cmdlet di PowerShell o l'API di Azure.Manipulate schedule through Azure portal, PowerShell cmdlets, or Azure API.
  • Possibilità di specificare i valori di parametri da usare con la pianificazione.Provide parameter values to be used with schedule.
  • Da un altro RunbookFrom Another Runbook
  • Uso di un Runbook come attività in un altro Runbook.Use a runbook as an activity in another runbook.
  • Utile per funzionalità usate da più Runbook.Useful for functionality used by multiple runbooks.
  • Possibilità di specificare valori di parametri per Runbook figlio e usare l'output in Runbook padre.Provide parameter values to child runbook and use output in parent runbook.
  • L'immagine seguente illustra in dettaglio il processo nel ciclo di vita di un runbook.The following image illustrates detailed step-by-step process in the life cycle of a runbook. Include vari metodi di avvio di un runbook in Automazione di Azure, i componenti necessari per il ruolo di lavoro ibrido per runbook per eseguire i runbook di Automazione di Azure e le interazioni tra i vari componenti.It includes different ways a runbook is started in Azure Automation, components required for Hybrid Runbook Worker to execute Azure Automation runbooks and interactions between different components. Per altre informazioni sull'esecuzione di runbook di automazione nel proprio data center, vedere Ruoli di lavoro ibridi per runbookTo learn about executing Automation runbooks in your datacenter, refer to hybrid runbook workers

    Architettura dei runbook

    Avvio di un Runbook con il portale di AzureStarting a runbook with the Azure portal

    1. Nel portale di Azure selezionare Automazione e quindi fare clic sul nome di un account di automazione.In the Azure portal, select Automation and then then click the name of an automation account.
    2. Nel menu Hub selezionare Runbook.On the Hub menu, select Runbooks.
    3. Nel pannello Runbook selezionare un runbook e quindi fare clic su Avvia.On the Runbooks blade, select a runbook, and then click Start.
    4. Se il Runbook dispone di parametri, verrà richiesto di specificare i valori con una casella di testo per ogni parametro.If the runbook has parameters, you will be prompted to provide values with a text box for each parameter. Per altri dettagli sui parametri, vedere Parametri di Runbook più avanti.See Runbook Parameters below for further details on parameters.
    5. Nel pannello Processo è possibile visualizzare lo stato del processo del runbook.On the Job blade, you can view the status of the runbook job.

    Avvio di un Runbook con Windows PowerShellStarting a runbook with Windows PowerShell

    È possibile usare Start-AzureRmAutomationRunbook per avviare un runbook con Windows PowerShell.You can use the Start-AzureRmAutomationRunbook to start a runbook with Windows PowerShell. Il codice di esempio seguente avvia un Runbook denominato Test-Runbook.The following sample code starts a runbook called Test-Runbook.

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

    Start-AzureRmAutomationRunbook restituisce un oggetto processo che è possibile usare per tenere traccia dello stato dopo l'avvio del runbook.Start-AzureRmAutomationRunbook returns a job object that you can use to track its status once the runbook is started. È quindi possibile usare questo oggetto processo con Get-AzureRmAutomationJob per determinare lo stato del processo e con Get-AzureRmAutomationJobOutput per ottenere il relativo output.You can then use this job object with Get-AzureRmAutomationJob to determine the status of the job and Get-AzureRmAutomationJobOutput to get its output. L'esempio di codice seguente avvia un Runbook denominato Test-Runbook, attende che venga completato e quindi visualizza l'output corrispondente.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
    

    Se il Runbook richiede parametri, è necessario fornirli come tabella hash , dove la chiave della tabella hash corrisponde al nome del parametro e il valore al valore del parametro.If the runbook requires parameters, then you must provide them as a hashtable where the key of the hashtable matches the parameter name and the value is the parameter value. L'esempio seguente illustra come avviare un Runbook con due parametri di stringa denominati FirstName e LastName, un parametro di tipo intero denominato RepeatCount e un parametro booleano denominato 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. Per altre informazioni sui parametri, vedere Parametri di Runbook più avanti.For additional 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
    

    Parametri di RunbookRunbook parameters

    Quando si avvia un runbook dal portale di Azure o da Windows PowerShell, l'istruzione viene inviata attraverso il servizio Web Automazione di Azure.When you start a runbook from the Azure Portal or Windows PowerShell, the instruction is sent through the Azure Automation web service. Questo servizio non supporta i parametri con tipi di dati complessi.This service does not support parameters with complex data types. Se è necessario specificare un valore per un parametro complesso, eseguire la chiamata inline da un altro Runbook come descritto in Runbook figlio in Automazione di Azure.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.

    Il servizio Web Automazione di Azure offrirà funzionalità speciali per i parametri che usano determinati tipi di dati, come descritto nelle sezioni seguenti.The Azure Automation web service will provide special functionality for parameters using certain data types as described in the following sections.

    Valori denominatiNamed values

    Se il parametro è un tipo di dati [object], è possibile usare il formato JSON seguente per inviargli un elenco di valori denominati: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}.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'}. Questi valori devono essere tipi semplici.These values must be simple types. Il Runbook riceverà il parametro come PSCustomObject con proprietà che corrispondono a ogni valore denominato.The runbook will receive the parameter as a PSCustomObject with properties that correspond to each named value.

    Si consideri il Runbook di test seguente che accetta un parametro denominato 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
            }
        }
    }
    

    È possibile usare il testo seguente per il parametro user.The following text could be used for the user parameter.

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

    Si ottiene l'output seguente.This results in the following output.

    Joe
    Smith
    Joe
    Smith
    

    MatriciArrays

    Se il parametro è una matrice, ad esempio [array] o [string[]], è possibile usare il formato JSON seguente per inviargli un elenco di valori: [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]. Questi valori devono essere tipi semplici.These values must be simple types.

    Si consideri il Runbook di test seguente che accetta un parametro denominato 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]
            }
        }
    }
    

    È possibile usare il testo seguente per il parametro user.The following text could be used for the user parameter.

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

    Si ottiene l'output seguente.This results in the following output.

    Joe
    Smith
    Joe
    Smith
    

    CredenzialiCredentials

    Se il parametro è un tipo di dati PSCredential, è possibile specificare il nome di un asset credenzialidi Automazione di Azure.If the parameter is data type PSCredential, then you can provide the name of an Azure Automation credential asset. Il Runbook recupererà le credenziali con il nome specificato.The runbook will retrieve the credential with the name that you specify.

    Si consideri il Runbook di test seguente che accetta un parametro denominato credential.Consider the following test runbook that accepts a parameter called credential.

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

    È possibile usare il testo seguente per il parametro user presumendo l'esistenza di un asset credenziali denominato My Credential.The following text could be used for the user parameter assuming that there was a credential asset called My Credential.

    My Credential
    

    Presupponendo che il nome utente nelle credenziali sia jsmith, si ottiene l'output seguente.Assuming the username in the credential was jsmith, this results in the following output.

    jsmith
    

    Passaggi successiviNext steps

    • L'architettura runbook nell'articolo corrente offre una panoramica generale delle risorse di gestione di runbook in Azure e in locale con il ruolo di lavoro ibrido per runbook.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. Per altre informazioni sull'esecuzione di runbook di automazione nel proprio data center, vedere Ruoli di lavoro ibridi per runbook.To learn about executing Automation runbooks in your datacenter, refer to Hybrid Runbook Workers.
    • Per altre informazioni sulla creazione di runbook modulari che possono essere usati da altri runbook per funzioni comuni o specifiche, fare riferimento a Runbook figlio.To learn more about the creating modular runbooks to be used by other runbooks for specific or common functions, refer to Child Runbooks.