Avvio di un Runbook in Automazione di Azure

La tabella seguente consente di determinare la modalità di avvio di un Runbook in Automazione di Azure più appropriata per il proprio scenario. Questo articolo include informazioni dettagliate sull'avvio di un Runbook con il portale di Azure e con Windows PowerShell. Le informazioni sulle altre modalità sono contenute in altri documenti accessibili dai collegamenti seguenti.

METODO CARATTERISTICHE
Portale di Azure
  • Metodo più semplice con interfaccia utente interattiva.
  • Modulo per specificare valori di parametri semplici.
  • Facilità di controllo dello stato dei processi.
  • Accesso autenticato con l'accesso di Azure.
  • Windows PowerShell
  • Chiamata mediante cmdlet di Windows PowerShell nella riga di comandi.
  • Possibilità di inclusione in una soluzione automatizzata con più passaggi.
  • Autenticazione della richiesta con un certificato oppure con un'entità utente/entità servizio OAuth.
  • Possibilità di specificare valori di parametri semplici e complessi.
  • Possibilità di controllare lo stato dei processi.
  • Obbligo per il client di supporto dei cmdlet di PowerShell.
  • API di Automazione di Azure
  • Modalità più flessibile, ma anche più complessa.
  • Possibilità di chiamata da qualsiasi codice personalizzato in grado di creare richieste HTTP.
  • Autenticazione della richiesta con un certificato oppure con un'entità utente/entità servizio OAuth.
  • Possibilità di specificare valori di parametri semplici e complessi.
  • Possibilità di controllare lo stato dei processi.
  • Webhook
  • Avvio di Runbook da una singola richiesta HTTP.
  • Autenticazione con token di sicurezza nell'URL.
  • Impossibilità per il client di eseguire l'override dei valori di parametri specificati al momento della creazione del webhook. Possibilità per il Runbook di definire un singolo parametro popolato con i dettagli della richiesta HTTP.
  • Impossibilità di tenere traccia dello stato dei processi tramite URL webhook.
  • Risposta all'avviso di Azure
  • Avviare un runbook in risposta all'avviso di Azure.
  • Configurare webhook per runbook e collegare all'avviso.
  • Autenticazione con token di sicurezza nell'URL.
  • Pianificare
  • Avvio automatico dei runbook in base a una pianificazione oraria, giornaliera, settimanale o mensile.
  • Modifica della pianificazione tramite il portale di Azure, i cmdlet di PowerShell o l'API di Azure.
  • Possibilità di specificare i valori di parametri da usare con la pianificazione.
  • Da un altro Runbook
  • Uso di un Runbook come attività in un altro Runbook.
  • Utile per funzionalità usate da più Runbook.
  • Possibilità di specificare valori di parametri per Runbook figlio e usare l'output in Runbook padre.
  • L'immagine seguente illustra in dettaglio il processo nel ciclo di vita di un 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. Per altre informazioni sull'esecuzione di runbook di automazione nel proprio data center, vedere Ruoli di lavoro ibridi per runbook

    Architettura dei runbook

    Avvio di un Runbook con il portale di Azure

    1. Nel portale di Azure selezionare Automazione e quindi fare clic sul nome di un account di automazione.
    2. Nel menu Hub selezionare Runbook.
    3. Nel pannello Runbook selezionare un runbook e quindi fare clic su Avvia.
    4. Se il Runbook dispone di parametri, verrà richiesto di specificare i valori con una casella di testo per ogni parametro. Per altri dettagli sui parametri, vedere Parametri di Runbook più avanti.
    5. Nel pannello Processo è possibile visualizzare lo stato del processo del runbook.

    Avvio di un Runbook con Windows PowerShell

    È possibile usare Start-AzureRmAutomationRunbook per avviare un runbook con Windows PowerShell. Il codice di esempio seguente avvia un Runbook denominato 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. È quindi possibile usare questo oggetto processo con Get-AzureRmAutomationJob per determinare lo stato del processo e con Get-AzureRmAutomationJobOutput per ottenere il relativo output. L'esempio di codice seguente avvia un Runbook denominato Test-Runbook, attende che venga completato e quindi visualizza l'output corrispondente.

    $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. 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. Per altre informazioni sui parametri, vedere Parametri di Runbook più avanti.

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

    Parametri di Runbook

    Quando si avvia un runbook dal portale di Azure o da Windows PowerShell, l'istruzione viene inviata attraverso il servizio Web Automazione di Azure. Questo servizio non supporta i parametri con tipi di dati complessi. 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.

    Il servizio Web Automazione di Azure offrirà funzionalità speciali per i parametri che usano determinati tipi di dati, come descritto nelle sezioni seguenti.

    Valori denominati

    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'}. Questi valori devono essere tipi semplici. Il Runbook riceverà il parametro come PSCustomObject con proprietà che corrispondono a ogni valore denominato.

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

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

    Si ottiene l'output seguente.

    Joe
    Smith
    Joe
    Smith
    

    Matrici

    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]. Questi valori devono essere tipi semplici.

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

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

    Si ottiene l'output seguente.

    Joe
    Smith
    Joe
    Smith
    

    Credenziali

    Se il parametro è un tipo di dati PSCredential, è possibile specificare il nome di un asset credenzialidi Automazione di Azure. Il Runbook recupererà le credenziali con il nome specificato.

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

    My Credential
    

    Presupponendo che il nome utente nelle credenziali sia jsmith, si ottiene l'output seguente.

    jsmith
    

    Passaggi successivi

    • 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. Per altre informazioni sull'esecuzione di runbook di automazione nel proprio data center, vedere Ruoli di lavoro ibridi per runbook.
    • 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.