Start a runbook in Azure Automation (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
  • Eenvoudigste methode met interactieve gebruikersinterface.
  • Formulier voor het opgeven van eenvoudige parameterwaarden.
  • Werkstatus eenvoudig bijhouden.
  • Toegang die is geverifieerd met azure-aanmelding.
  • Windows PowerShell
  • Aanroepen vanaf de opdrachtregel met Windows PowerShell-cmdlets.
  • Kan worden opgenomen in geautomatiseerde functies met meerdere stappen.
  • Aanvraag wordt geverifieerd met certificaat of OAuth-gebruikers-principal/service-principal.
  • Geef eenvoudige en complexe parameterwaarden op.
  • Taakstatus bijhouden.
  • Client die is vereist voor de ondersteuning van PowerShell-cmdlets.
  • Azure Automation-API
  • Meest flexibele methode, maar ook het meest complex.
  • Aanroepen vanuit aangepaste code die HTTP-aanvragen kan indienen.
  • Aanvraag geverifieerd met certificaat of Oauth-gebruikers-principal/service-principal.
  • Geef eenvoudige en complexe parameterwaarden op. Als u een Python-runbook aanroept met behulp van de API, moet de JSON-nettolading worden geserialiseerd.
  • Taakstatus bijhouden.
  • Webhooks
  • Runbook starten vanaf één HTTP-aanvraag.
  • Geverifieerd met beveiligingstoken in URL.
  • Client kan parameterwaarden die zijn opgegeven bij het maken van de webhook niet overschrijven. Runbook kan één parameter definiëren die wordt gevuld met de details van de HTTP-aanvraag.
  • Er is geen mogelijkheid om de taakstatus bij te houden via de webhook-URL.
  • Reageren op Azure-waarschuwing
  • Start een runbook als reactie op de Azure-waarschuwing.
  • Configureer webhook voor runbook en koppeling naar waarschuwing.
  • Geverifieerd met beveiligingstoken in URL.
  • Plannen
  • Start automatisch runbook op uur- of dag-, wekelijkse of maandelijkse planning.
  • Schema bewerken via Azure Portal, PowerShell-cmdlets of Azure API.
  • Geef parameterwaarden op die moeten worden gebruikt met een schema.
  • Vanuit een ander runbook
  • Gebruik een runbook als activiteit in een ander runbook.
  • Handig voor functionaliteit die door meerdere runbooks wordt gebruikt.
  • Geef parameterwaarden op voor het onderliggende runbook en gebruik uitvoer in het bovenliggende 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

    Runbook Architecture

    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
    

    Referenties

    Als de parameter het gegevenstype PSCredentialis, 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

    1. Selecteer Automation in Azure Portal en selecteer vervolgens de naam van een Automation-account.
    2. Selecteer Runbooks in het linkerdeelvenster.
    3. Selecteer een runbook op de pagina Runbooks en klik vervolgens op Start.
    4. 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.
    5. 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