Een runbook starten in Azure Automation
De volgende tabel helpt u bij het bepalen van de methode voor het starten van een runbook in Azure Automation dat het meest geschikt is voor uw specifieke scenario. Dit artikel bevat informatie over het starten van een runbook met Azure Portal en Windows PowerShell. Meer informatie over de andere methoden vindt u in andere documentatie die u kunt openen via de onderstaande koppelingen.
Methode | Kenmerken |
---|---|
Azure-portal | |
Windows PowerShell | |
Azure Automation-API | |
Webhooks | |
Reageren op Azure-waarschuwing | |
Plannen | |
Vanuit een ander runbook |
In de volgende afbeelding ziet u een gedetailleerd stapsgewijs proces in de levenscyclus van een runbook. Het omvat verschillende manieren waarop een runbook wordt gestart in Azure Automation, welke onderdelen vereist zijn voor Hybrid Runbook Worker voor het uitvoeren van Azure Automation-runbooks en interacties tussen verschillende onderdelen. Raadpleeg hybrid runbook workers voor meer informatie over het uitvoeren van Automation-runbooks in uw datacenter
Werken met runbookparameters
Wanneer u een runbook start vanuit Azure Portal of Windows PowerShell, wordt de instructie verzonden via de Azure Automation-webservice. Deze service biedt geen ondersteuning voor parameters met complexe gegevenstypen. Als u een waarde moet opgeven voor een complexe parameter, moet u deze inline aanroepen vanuit een ander runbook, zoals beschreven in onderliggende runbooks in Azure Automation.
De Azure Automation-webservice biedt speciale functionaliteit voor parameters die bepaalde gegevenstypen gebruiken, zoals beschreven in de volgende secties.
Benoemde waarden
Als de parameter het gegevenstype [object] is, kunt u de volgende JSON-indeling gebruiken om deze een lijst met benoemde waarden te verzenden: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Deze waarden moeten eenvoudige typen zijn. Het runbook ontvangt de parameter als een PSCustomObject met eigenschappen die overeenkomen met elke benoemde waarde.
Overweeg het volgende testrunbook dat een parameter met de naam gebruiker accepteert.
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
}
}
}
De volgende tekst kan worden gebruikt voor de gebruikersparameter.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Dit resulteert in de volgende uitvoer:
Joe
Smith
Joe
Smith
Matrices
Als de parameter een matrix is, zoals [matrix] of [tekenreeks[]], kunt u de volgende JSON-indeling gebruiken om deze een lijst met waarden te verzenden: [Waarde1, Waarde2, Waarde3]. Deze waarden moeten eenvoudige typen zijn.
Overweeg het volgende testrunbook dat een parameter met de naam gebruiker accepteert.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
De volgende tekst kan worden gebruikt voor de gebruikersparameter.
["Joe","Smith",2,true]
Dit resulteert in de volgende uitvoer:
Joe
Smith
Joe
Smith
Referentie
Als de parameter het gegevenstype PSCredential
is, kunt u de naam van een Azure Automation-referentieasset opgeven. Het runbook haalt de referentie op met de naam die u opgeeft. Het volgende testrunbook accepteert een parameter met de naam credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
De volgende tekst kan worden gebruikt voor de gebruikersparameter ervan uitgaande dat er een referentieasset is aangeroepen My Credential
.
My Credential
Ervan uitgaande dat de gebruikersnaam in de referentie is jsmith
, wordt de volgende uitvoer weergegeven.
jsmith
Een runbook starten met Azure Portal
- Selecteer Automation in Azure Portal en selecteer vervolgens de naam van een Automation-account.
- Selecteer Runbooks in het linkerdeelvenster.
- Selecteer een runbook op de pagina Runbooks en klik vervolgens op Start.
- Als het runbook parameters bevat, wordt u gevraagd waarden op te geven met een tekstvak voor elke parameter. Zie RunbookParameters voor meer informatie over parameters.
- In het taakvenster kunt u de status van de runbooktaak bekijken.
Een runbook starten met PowerShell
U kunt het Start-AzAutomationRunbook gebruiken om een runbook te starten met Windows PowerShell. Met de volgende voorbeeldcode wordt een runbook gestart met de naam Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
retourneert een taakobject dat u kunt gebruiken om de status bij te houden zodra het runbook is gestart. U kunt dit taakobject vervolgens gebruiken met Get-AzAutomationJob om de status van de taak en Get-AzAutomationJobOutput te bepalen om de uitvoer op te halen. In het volgende voorbeeld wordt een runbook gestart met de naam Test-Runbook, wordt gewacht totdat het is voltooid en wordt vervolgens de uitvoer weergegeven.
$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
Als voor het runbook parameters zijn vereist, moet u deze opgeven als een hashtabel. De sleutel van de hashtabel moet overeenkomen met de parameternaam en de waarde is de parameterwaarde. In het volgende voorbeeld ziet u hoe u een runbook start met twee tekenreeksparameters met de naam FirstName en LastName, een geheel getal met de naam RepeatCount en een booleaanse parameter met de naam Show. Zie RunbookParameters voor meer informatie over parameters.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
Volgende stappen
- Zie Runbooks beheren in Azure Automation voor meer informatie over runbookbeheer.
- Zie PowerShell-documenten voor meer informatie over PowerShell.
- Zie Runbookproblemen oplossen om problemen met runbookuitvoering op te lossen.