Starten eines Runbooks in Azure Automation
Die folgende Tabelle hilft Ihnen dabei herauszufinden, welche Methode zum Starten eines Runbooks in Azure Automation sich am besten für Ihr jeweiliges Szenario eignet. Dieser Artikel enthält Details zum Starten eines Runbooks über das Azure-Portal oder mit Windows PowerShell. Details zu den anderen Methoden werden in anderen Artikeln bereitgestellt, auf die Sie über unten stehende Links zugreifen können.
Methode | Merkmale |
---|---|
Azure portal | |
Windows PowerShell | |
Azure Automation-API | |
Webhooks | |
Reagieren auf eine Azure-Warnung | |
Zeitplan | |
Über ein anderes Runbook |
Die folgende Abbildung veranschaulicht ausführlich die Prozessschritte im Lebenszyklus eines Runbooks. Dies umfasst verschiedene Arten, auf die ein Runbook in Azure Automation gestartet werden kann, sowie Komponenten, die erforderlich sind, damit ein Hybrid Runbook Worker Azure Automation-Runbooks ausführen und Interaktionen zwischen verschiedenen Komponenten unterstützen kann. Weitere Informationen zum Ausführen von Automation-Runbooks in Ihrem Rechenzentrum finden Sie unter Hybrid Runbook Worker
Verwenden von Runbookparametern
Wenn Sie ein Runbook über das Azure-Portal oder mit Windows PowerShell starten, wird die Anweisung über den Azure Automation-Webdienst gesendet. Dieser Dienst unterstützt keine Parameter mit komplexen Datentypen. Wenn Sie einen Wert für einen komplexen Parameter bereitstellen müssen, müssen Sie diesen inline aus einem anderen Runbook aufrufen, wie unter Untergeordnete Runbooks in Azure Automationbeschrieben.
Der Azure Automation-Webdienst bietet spezielle Funktionen für Parameter, die bestimmte Datentypen verwenden, wie in den folgenden Abschnitten beschrieben.
Benannte Werte
Wenn der Parameter den Datentyp „[object]“ enthält, können Sie das folgende JSON-Format verwenden, um eine Liste benannter Werte an den Parameter zu senden: {Name1:Wert1, Name2:Wert2, Name3:Wert3}. Bei den Werten muss es sich um einfache Typen handeln. Das Runbook empfängt den Parameter als PSCustomObject mit Eigenschaften, die den einzelnen benannten Werten entsprechen.
Betrachten Sie das folgende Testrunbook, das einen Parameter namens userakzeptiert.
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ür den Parameter "user" könnte folgender Text verwendet werden.
{FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
Dadurch wird die folgende Ausgabe zurückgegeben:
Joe
Smith
Joe
Smith
Arrays
Wenn es sich bei dem Parameter um ein Array wie beispielsweise [array] oder [string[]] handelt, können Sie das folgende JSON-Format verwenden, um eine Liste von Werten an den Parameter zu senden: [Wert1,Wert2,Wert3]. Bei den Werten muss es sich um einfache Typen handeln.
Betrachten Sie das folgende Testrunbook, das einen Parameter namens userakzeptiert.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][array]$user
)
if ($user[3]) {
foreach ($i in 1..$user[2]) {
$ user[0]
$ user[1]
}
}
}
Für den Parameter "user" könnte folgender Text verwendet werden.
["Joe","Smith",2,true]
Dadurch wird die folgende Ausgabe zurückgegeben:
Joe
Smith
Joe
Smith
Anmeldeinformationen
Wenn der Parameter den Datentyp PSCredential
aufweist, können Sie den Namen eines Azure Automation-Anmeldeinformationsobjekts bereitstellen. Das Runbook ruft die Anmeldeinformationen mit dem von Ihnen angegebenen Namen ab. Das folgende Testrunbook akzeptiert einen Parameter namens credential
.
Workflow Test-Parameters
{
param (
[Parameter(Mandatory=$true)][PSCredential]$credential
)
$credential.UserName
}
Für den Parameter „user“ kann der folgende Text verwendet werden, vorausgesetzt, es ist ein Anmeldeinformationsobjekt namens My Credential
vorhanden.
My Credential
Unter der Voraussetzung, dass der Benutzername in den Anmeldeinformationen jsmith
lautet, wird folgende Ausgabe angezeigt.
jsmith
Starten eines Runbooks mit dem Azure-Portal
- Wählen Sie im Azure-Portal die Option Automation aus, und wählen Sie anschließend den Namen eines Automation-Kontos aus.
- Wählen Sie im linken Bereich Runbooks aus.
- Wählen Sie auf der Seite Runbook ein Runbook aus, und klicken Sie dann auf Starten.
- Wenn das Runbook Parameter enthält, werden Sie aufgefordert, für jeden Parameter einen Wert in ein Textfeld einzugeben. Weitere Informationen zu Parametern finden Sie unter Runbookparameter.
- Im Bereich Auftrag können Sie den Status des Runbookauftrags anzeigen.
Starten eines Runbooks mit PowerShell
Sie können das Cmdlet Start-AzAutomationRunbook verwenden, um ein Runbook mit Windows PowerShell zu starten. Der folgende Beispielcode startet ein Runbook namens Test-Runbook.
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
Start-AzAutomationRunbook
gibt ein Auftragsobjekt zurück, mit dem Sie den Status nachverfolgen können, sobald das Runbook gestartet wurde. Sie können dieses job-Objekt mit Get-AzAutomationJob verwenden, um den Status des Auftrags zu ermitteln, und Get-AzAutomationJobOutput, um seine Ausgabe abzurufen. Das folgende Beispiel startet ein Runbook namens Test-Runbook, wartet, bis die Ausführung beendet ist, und zeigt anschließend die Runbookausgabe an.
$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
Wenn das Runbook Parameter erfordert, müssen Sie diese als Hashtabelle bereitstellen. Der Schlüssel der Hashtabelle muss dem Parameternamen entsprechen, und der Wert ist der Parameterwert. Das folgende Beispiel zeigt das Starten eines Runbooks mit zwei Zeichenfolgenparametern "FirstName" und "LastName", einem ganzzahligen Wert namens "RepeatCount" und einem booleschen Parameter namens "Show". Weitere Informationen zu Parametern finden Sie unter Runbookparameter.
$params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
Nächste Schritte
- Einzelheiten zur Runbookverwaltung finden Sie unter Verwalten von Runbooks in Azure Automation.
- Details zu PowerShell finden Sie in der PowerShell-Dokumentation.
- Informationen zum Behandeln von Problemen bei der Runbookausführung finden Sie unter Beheben von Runbookproblemen.