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-portalen och med Windows PowerShell. Information om de andra metoderna finns i annan dokumentation som du kan komma åt från länkarna nedan.

Metod Egenskaper
Azure-portalen
  • Enklaste metoden med interaktivt användargränssnitt.
  • Formulär för att ange enkla parametervärden.
  • Spåra enkelt jobbtillstånd.
  • Åtkomst autentiserad med Azure-inloggning.
  • Windows PowerShell
  • Anropa från kommandoraden med Windows PowerShell-cmdletar.
  • Kan ingå i automatiserad funktion med flera steg.
  • Begäran autentiseras med certifikat eller OAuth-användarens huvudnamn/tjänstens huvudnamn.
  • Ange enkla och komplexa parametervärden.
  • Spåra jobbtillstånd.
  • Klienten krävs för att stödja PowerShell-cmdletar.
  • Azure Automation API
  • Mest flexibel metod men också mest komplex.
  • Anropa från valfri anpassad kod som kan göra HTTP-begäranden.
  • Begäran autentiserad med certifikat eller Oauth-användarens huvudnamn/tjänstens huvudnamn.
  • Ange enkla och komplexa parametervärden. Om du anropar en Python-runbook med hjälp av API:et måste JSON-nyttolasten serialiseras.
  • Spåra jobbtillstånd.
  • Webhooks
  • Starta runbook från en enskild HTTP-begäran.
  • Autentiserad med säkerhetstoken i URL.
  • Klienten kan inte åsidosätta parametervärden som angavs när webhook skapades. Runbook kan definiera en enskild parameter som fylls i med HTTP-begärandeinformationen.
  • Ingen möjlighet att spåra jobbtillstånd via webhook-URL.
  • Svara på Azure-avisering
  • Starta en runbook som svar på En Azure-avisering.
  • Konfigurera webhook för runbook och länka till avisering.
  • Autentiserad med säkerhetstoken i URL.
  • Tidsplan
  • Starta runbook automatiskt enligt schema för varje timme, varje dag, varje vecka eller varje månad.
  • Ändra schemat via Azure-portalen, PowerShell-cmdletar eller Azure API.
  • Ange parametervärden som ska användas med schema.
  • Från en annan Runbook
  • Använd en runbook som en aktivitet i en annan runbook.
  • Användbar för funktioner som används av flera runbooks.
  • Ange parametervärden till underordnad runbook och använd utdata i den överordnade runbooken.
  • 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

    Runbook Architecture

    Arbeta med runbook-parametrar

    När du startar en runbook från Azure-portalen 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
    

    Autentiseringsuppgifter

    Om parametern är datatyp PSCredentialkan 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 jsmithvisas följande utdata.

    jsmith
    

    Starta en runbook med Azure-portalen

    1. I Azure-portalen väljer du Automation och sedan namnet på ett Automation-konto.
    2. I den vänstra rutan väljer du Runbooks.
    3. På sidan Runbooks väljer du en runbook och klickar sedan på Start.
    4. 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.
    5. 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