Starta en runbook i Azure Automation
Följande tabell hjälper dig att fastställa vilken metod som ska användas för att starta en runbook i Azure Automation som passar bäst för ditt specifika scenario. Den här artikeln innehåller information om hur du startar en runbook med Azure Portal och med Windows PowerShell. Information om de andra metoderna finns i annan dokumentation som du kan komma åt från länkarna nedan.
Metod | Karakteristika |
---|---|
Azure-portalen | |
Windows PowerShell | |
Azure Automation API | |
Webhooks | |
Svara på Azure-avisering | |
Tidsplan | |
Från en annan Runbook |
Följande bild illustrerar en detaljerad stegvis process i livscykeln för en runbook. Den innehåller olika sätt som en runbook startar i Azure Automation, vilka komponenter som krävs för att Hybrid Runbook Worker ska kunna köra Azure Automation-runbooks och interaktioner mellan olika komponenter. Mer information om hur du kör Automation-runbooks i ditt datacenter finns i Hybrid Runbook Worker
Arbeta med runbook-parametrar
När du startar en runbook från Azure Portal eller Windows PowerShell skickas instruktionen via Azure Automation-webbtjänsten. Den här tjänsten stöder inte parametrar med komplexa datatyper. Om du behöver ange ett värde för en komplex parameter måste du anropa den infogad från en annan runbook enligt beskrivningen i Underordnade runbooks i Azure Automation.
Azure Automation-webbtjänsten tillhandahåller särskilda funktioner för parametrar som använder vissa datatyper enligt beskrivningen i följande avsnitt.
Namngivna värden
Om parametern är datatypen [objekt] kan du använda följande JSON-format för att skicka en lista med namngivna värden: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Dessa värden måste vara enkla typer. Runbooken tar emot parametern som en PSCustomObject med egenskaper som motsvarar varje namngivet värde.
Överväg följande test runbook som accepterar en parameter som kallas användare.
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
}
}
}
Följande text kan användas för användarparametern.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Detta resulterar i följande utdata:
Joe
Smith
Joe
Smith
Matriser
Om parametern är en matris som [matris] eller [sträng[]], kan du använda följande JSON-format för att skicka en lista med värden: [Value1, Value2, Value3]. Dessa värden måste vara enkla typer.
Överväg följande test runbook som accepterar en parameter som kallas användare.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
Följande text kan användas för användarparametern.
["Joe","Smith",2,true]
Detta resulterar i följande utdata:
Joe
Smith
Joe
Smith
Merit
Om parametern är datatyp PSCredential
kan du ange namnet på en Azure Automation-autentiseringstillgång. Runbooken hämtar autentiseringsuppgifterna med det namn som du anger. Följande test runbook accepterar en parameter med namnet credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
Följande text kan användas för användarparametern förutsatt att det fanns en tillgång för autentiseringsuppgifter med namnet My Credential
.
My Credential
Förutsatt att användarnamnet i autentiseringsuppgiften är jsmith
visas följande utdata.
jsmith
Starta en runbook med Azure Portal
- I Azure Portal väljer du Automation och sedan namnet på ett Automation-konto.
- I den vänstra rutan väljer du Runbooks.
- På sidan Runbooks väljer du en runbook och klickar sedan på Start.
- Om runbooken har parametrar uppmanas du att ange värden med en textruta för varje parameter. Mer information om parametrar finns i Runbook-parametrar.
- I fönstret Jobb kan du visa status för runbook-jobbet.
Starta en runbook med PowerShell
Du kan använda Start-AzAutomationRunbook för att starta en runbook med Windows PowerShell. Följande exempelkod startar en runbook med namnet Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
returnerar ett jobbobjekt som du kan använda för att spåra status när runbooken har startats. Du kan sedan använda det här jobbobjektet med Get-AzAutomationJob för att fastställa status för jobbet och Get-AzAutomationJobOutput för att hämta dess utdata. I följande exempel startas en runbook med namnet Test-Runbook, väntar tills den har slutförts och visar sedan utdata.
$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
Om runbooken kräver parametrar måste du ange dem som en hashtable. Nyckeln för hashtabellen måste matcha parameternamnet och värdet är parametervärdet. I följande exempel visas hur du startar en runbook med två strängparametrar med namnet FirstName och LastName, ett heltal med namnet RepeatCount och en boolesk parameter med namnet Show. Mer information om parametrar finns i Runbook-parametrar.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
Nästa steg
- Mer information om runbookhantering finns i Hantera runbooks i Azure Automation.
- Mer information om PowerShell finns i PowerShell Docs.
- Information om hur du felsöker problem med runbook-körning finns i Felsöka runbook-problem.