Uruchamianie elementu runbook w usłudze Azure Automation

Poniższa tabela ułatwia określenie metody uruchamiania elementu Runbook w usłudze Azure Automation, który jest najbardziej odpowiedni dla konkretnego scenariusza. Ten artykuł zawiera szczegółowe informacje na temat uruchamiania elementu Runbook w witrynie Azure Portal oraz programu Windows PowerShell. Szczegółowe informacje na temat innych metod znajdują się w innej dokumentacji, do której można uzyskać dostęp z poniższych linków.

Metoda Cechy
Witryna Azure Portal
  • Najprostsza metoda z interaktywnym interfejsem użytkownika.
  • Formularz umożliwiający podanie prostych wartości parametrów.
  • Łatwe śledzenie stanu zadania.
  • Dostęp uwierzytelniony przy użyciu logowania platformy Azure.
  • Windows PowerShell
  • Wywoływanie z wiersza polecenia za pomocą poleceń cmdlet programu Windows PowerShell.
  • Można uwzględnić w funkcji automatycznej z wieloma krokami.
  • Żądanie jest uwierzytelniane za pomocą certyfikatu lub jednostki usługi użytkownika OAuth.
  • Podaj proste i złożone wartości parametrów.
  • Śledzenie stanu zadania.
  • Klient wymagany do obsługi poleceń cmdlet programu PowerShell.
  • Azure Automation API
  • Najbardziej elastyczna metoda, ale także najbardziej złożona.
  • Wywoływanie z dowolnego kodu niestandardowego, który może wysyłać żądania HTTP.
  • Zażądaj uwierzytelnienia przy użyciu certyfikatu lub jednostki usługi użytkownika Oauth.
  • Podaj proste i złożone wartości parametrów. Jeśli wywołujesz element Runbook języka Python przy użyciu interfejsu API, ładunek JSON musi być serializowany.
  • Śledzenie stanu zadania.
  • Elementy webhook
  • Uruchom element Runbook z pojedynczego żądania HTTP.
  • Uwierzytelnione przy użyciu tokenu zabezpieczającego w adresie URL.
  • Klient nie może zastąpić wartości parametrów określonych podczas tworzenia elementu webhook. Element Runbook może definiować pojedynczy parametr wypełniony szczegółami żądania HTTP.
  • Brak możliwości śledzenia stanu zadania za pośrednictwem adresu URL elementu webhook.
  • Reagowanie na alert platformy Azure
  • Uruchom element Runbook w odpowiedzi na alert platformy Azure.
  • Skonfiguruj element webhook dla elementu Runbook i połącz go z alertem.
  • Uwierzytelnione przy użyciu tokenu zabezpieczającego w adresie URL.
  • Zaplanuj
  • Automatycznie uruchamiaj element Runbook według godzinowego, dziennego, tygodniowego lub miesięcznego harmonogramu.
  • Manipulowanie harmonogramem za pomocą witryny Azure Portal, poleceń cmdlet programu PowerShell lub interfejsu API platformy Azure.
  • Podaj wartości parametrów, które mają być używane z harmonogramem.
  • Z innego elementu Runbook
  • Użyj elementu Runbook jako działania w innym elemecie Runbook.
  • Przydatne w przypadku funkcji używanych przez wiele elementów Runbook.
  • Podaj wartości parametrów podrzędnego elementu Runbook i użyj danych wyjściowych w nadrzędnym elemecie Runbook.
  • Na poniższej ilustracji przedstawiono szczegółowy proces krok po kroku w cyklu życia elementu Runbook. Zawiera różne sposoby uruchamiania elementu Runbook w usłudze Azure Automation, które składniki wymagane do hybrydowego procesu roboczego elementu Runbook do wykonywania elementów Runbook usługi Azure Automation i interakcji między różnymi składnikami. Aby dowiedzieć się więcej o wykonywaniu elementów Runbook usługi Automation w centrum danych, zapoznaj się z hybrydowymi procesami roboczymi elementów Runbook

    Runbook Architecture

    Praca z parametrami elementu Runbook

    Po uruchomieniu elementu runbook z witryny Azure Portal lub programu Windows PowerShell instrukcja jest wysyłana za pośrednictwem usługi internetowej Azure Automation. Ta usługa nie obsługuje parametrów ze złożonymi typami danych. Jeśli musisz podać wartość dla złożonego parametru, musisz wywołać go w tekście z innego elementu Runbook zgodnie z opisem w temacie Podrzędne elementy Runbook w usłudze Azure Automation.

    Usługa internetowa usługi Azure Automation udostępnia specjalne funkcje dla parametrów korzystających z określonych typów danych zgodnie z opisem w poniższych sekcjach.

    Nazwane wartości

    Jeśli parametr jest typem danych [object], możesz użyć następującego formatu JSON, aby wysłać do niego listę nazwanych wartości: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Te wartości muszą być typu prostego. Element Runbook odbiera parametr jako obiekt PSCustomObject z właściwościami odpowiadającymi każdej nazwanej wartości.

    Rozważmy następujący tekstowy element Runbook, który akceptuje parametr o nazwie user.

    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
            }
        }
    }
    

    Poniższego tekstu można użyć jako parametru user.

    {FirstName:'Joe',LastName:'Smith',RepeatCount:'2',Show:'True'}
    

    Spowoduje to wykonanie następujących danych wyjściowych:

    Joe
    Smith
    Joe
    Smith
    

    Tablice

    Jeśli parametr jest tablicą, taką jak [array] lub [string[]], możesz użyć następującego formatu JSON, aby wysłać do niego listę wartości: [Value1, Value2, Value3]. Te wartości muszą być typu prostego.

    Rozważmy następujący tekstowy element Runbook, który akceptuje parametr o nazwie user.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][array]$user
       )
        if ($user[3]) {
            foreach ($i in 1..$user[2]) {
                $ user[0]
                $ user[1]
            }
        }
    }
    

    Poniższego tekstu można użyć jako parametru user.

    ["Joe","Smith",2,true]
    

    Spowoduje to wykonanie następujących danych wyjściowych:

    Joe
    Smith
    Joe
    Smith
    

    Poświadczenia

    Jeśli parametr jest typem PSCredentialdanych, możesz podać nazwę zasobu poświadczeń usługi Azure Automation. Element Runbook pobiera poświadczenie o określonej nazwie. Poniższy testowy element Runbook akceptuje parametr o nazwie credential.

    Workflow Test-Parameters
    {
       param (
          [Parameter(Mandatory=$true)][PSCredential]$credential
       )
       $credential.UserName
    }
    

    Poniższy tekst może służyć do parametru użytkownika przy założeniu, że istnieje zasób poświadczeń o nazwie My Credential.

    My Credential
    

    Przy założeniu, że nazwa użytkownika w poświadczeniu to jsmith, zostaną wyświetlone następujące dane wyjściowe.

    jsmith
    

    Uruchamianie elementu Runbook za pomocą witryny Azure Portal

    1. W witrynie Azure Portal wybierz pozycję Automation , a następnie wybierz nazwę konta usługi Automation.
    2. W okienku po lewej stronie wybierz pozycję Elementy Runbook.
    3. Na stronie Elementy Runbook wybierz element Runbook, a następnie kliknij przycisk Start.
    4. Jeśli element Runbook ma parametry, zostanie wyświetlony monit o podanie wartości z polem tekstowym dla każdego parametru. Aby uzyskać więcej informacji na temat parametrów, zobacz Parametry elementu Runbook.
    5. W okienku Zadanie można wyświetlić stan zadania elementu Runbook.

    Uruchamianie elementu Runbook przy użyciu programu PowerShell

    Aby uruchomić element runbook za pomocą programu Windows PowerShell, możesz użyć polecenia Start-AzAutomationRunbook . Poniższy przykładowy kod uruchamia element Runbook o nazwie Test-Runbook.

    Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01"
    

    Start-AzAutomationRunbook Zwraca obiekt zadania, którego można użyć do śledzenia stanu po uruchomieniu elementu Runbook. Następnie można użyć tego obiektu zadania z poleceniem Get-AzAutomationJob , aby określić stan zadania i polecenie Get-AzAutomationJobOutput w celu pobrania jego danych wyjściowych. Poniższy przykład uruchamia element Runbook o nazwie Test-Runbook, czeka na jego zakończenie, a następnie wyświetla jego dane wyjściowe.

    $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
    

    Jeśli element Runbook wymaga parametrów, musisz podać je jako tabelę skrótu. Klucz tabeli skrótu musi być zgodny z nazwą parametru, a wartość jest wartością parametru. Poniższy przykład przedstawia sposób uruchamiania elementu Runbook z dwoma parametrami będącymi ciągami o nazwie FirstName i LastName, liczbą całkowitą o nazwie RepeatCount i parametrem logicznym o nazwie Show. Aby uzyskać więcej informacji na temat parametrów, zobacz Parametry elementu Runbook.

    $params = @{"FirstName"="Joe";"LastName"="Smith";"RepeatCount"=2;"Show"=$true}
    Start-AzAutomationRunbook -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook" -ResourceGroupName "ResourceGroup01" -Parameters $params
    

    Następne kroki