Avviare un runbook in Automazione di Azure
La tabella seguente aiuta a determinare il metodo per avviare un runbook in Automazione di Azure più adatto per uno scenario specifico. 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 |
---|---|
Azure portal | |
Windows PowerShell | |
API di Automazione di Azure | |
Webhook | |
Risposta all'avviso di Azure | |
Fissa appuntamento | |
Da un altro Runbook |
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
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 fornisce funzionalità speciali per i parametri che usano determinati tipi di dati, come descritto nelle sezioni seguenti.
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 riceve 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
Se il parametro è una matrice, ad esempio [array] o [string[]], è possibile usare il formato JSON seguente per inviare 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
Se il parametro è un tipo di dati PSCredential
, è possibile specificare il nome di un asset credenziali di Automazione di Azure. Il runbook recupera le credenziali con il nome specificato. Il runbook di test seguente accetta un parametro denominato credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
È possibile usare il testo seguente per il parametro utente, presumendo l'esistenza di un asset credenziali denominato My Credential
.
My Credential
Supponendo che il nome utente nelle credenziali sia jsmith
, viene visualizzato l'output seguente.
jsmith
- Nel portale di Azure, selezionare Automazione e selezionare il nome di un account di automazione.
- Nel riquadro sinistro selezionare Runbook.
- Nella pagina Runbook selezionare un runbook e quindi fare clic su Avvia.
- Se il runbook ha parametri, viene chiesto di specificare i valori con una casella di testo per ogni parametro. Per altre informazioni sui parametri, vedere Parametri di runbook.
- Nel riquadro Processo è possibile visualizzare lo stato del processo del runbook.
È possibile usare Start-AzAutomationRunbook per avviare un runbook con Windows PowerShell. Il codice di esempio seguente avvia un Runbook denominato Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
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-AzAutomationJob per determinare lo stato del processo e Get-AzAutomationJobOutput per recuperare il relativo output. L'esempio 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-AzAutomationRunbook -AutomationAccountName $AutomationAcct -Name $runbookName -ResourceGroupName $ResourceGroup
$doLoop = $true
While ($doLoop) {
$job = Get-AzAutomationJob -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-AzAutomationJobOutput -AutomationAccountName $AutomationAcct -Id $job.JobId -ResourceGroupName $ResourceGroup -Stream Output
Se il runbook richiede parametri, è necessario fornirli come tabella hash. La chiave della tabella hash deve corrispondere al nome del parametro e il valore è il 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.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
- Per informazioni dettagliate sulla gestione del runbook, vedere Gestire runbook in Automazione di Azure.
- Per informazioni dettagliate su PowerShell, vedere Documentazione di PowerShell.
- Per risolvere i problemi relativi all'esecuzione di runbook, vedere Risolvere i problemi relativi ai runbook.