Memulai runbook di Azure Automation

Tabel berikut ini membantu Anda menentukan metode untuk memulai runbook di Azure Automation yang paling sesuai dengan skenario khusus Anda. Artikel ini mencakup detail tentang memulai runbook dengan portal Microsoft Azure dan Windows PowerShell. Detail tentang metode lain disediakan dalam dokumentasi lain yang dapat Anda akses dari tautan di bawah ini.

Metode Karakteristik
Portal Azure
  • Metode paling sederhana dengan antarmuka pengguna interaktif.
  • Formulir untuk menyediakan nilai parameter sederhana.
  • Melacak status pekerjaan dengan mudah.
  • Akses diautentikasi dengan masuk Azure.
  • Windows PowerShell
  • Memanggil dari baris perintah dengan cmdlet Windows PowerShell.
  • Dapat dimasukkan dalam fitur otomatis dengan beberapa langkah.
  • Permintaan diautentikasi dengan sertifikat atau prinsipal pengguna/perwakilan layanan OAuth.
  • Memberikan nilai parameter sederhana dan kompleks.
  • Melacak status pekerjaan.
  • Diperlukan klien untuk mendukung cmdlet PowerShell.
  • Azure Automation API
  • Metode yang paling fleksibel, tetapi juga paling kompleks.
  • Memanggil dari kode kustom apa pun yang dapat membuat permintaan HTTP.
  • Permintaan diautentikasi dengan sertifikat atau prinsipal pengguna/perwakilan layanan Oauth.
  • Memberikan nilai parameter sederhana dan kompleks. Jika Anda memanggil runbook Python menggunakan API, payload JSON harus diserialisasi.
  • Melacak status pekerjaan.
  • Webhook
  • Memulai runbook dari satu permintaan HTTP.
  • Diautentikasi dengan token keamanan di URL.
  • Klien tidak dapat mengganti nilai parameter yang ditentukan saat webhook dibuat. Runbook dapat menentukan parameter tunggal yang diisi dengan detail permintaan HTTP.
  • Tidak ada kemampuan untuk melacak status pekerjaan melalui URL webhook.
  • Merespons Pemberitahuan Azure
  • Memulai runbook sebagai respons terhadap pemberitahuan Azure.
  • Mengonfigurasi webhook untuk runbook dan menautkan ke pemberitahuan.
  • Diautentikasi dengan token keamanan di URL.
  • Jadwal
  • Memulai runbook secara otomatis pada jadwal per jam, harian, mingguan, atau bulanan.
  • Memanipulasi jadwal melalui portal Microsoft Azure, cmdlet PowerShell, atau Azure API.
  • Menyediakan nilai parameter yang akan digunakan dengan jadwal.
  • Dari Runbook Lain
  • Menggunakan runbook sebagai aktivitas di runbook lain.
  • Berguna untuk fungsionalitas yang digunakan oleh beberapa runbook.
  • Memberikan nilai parameter ke runbook elemen anak dan menggunakan output di runbook induk.
  • Gambar berikut mengilustrasikan proses langkah demi langkah yang terperinci dalam siklus hidup runbook. Ini mencakup berbagai cara runbook dimulai di Azure Automation, komponen mana yang diperlukan untuk Hybrid Runbook Worker untuk menjalankan runbook Azure Automation dan interaksi antara komponen yang berbeda. Untuk mempelajari tentang menjalankan runbook Automation di pusat data Anda, lihat pekerja runbook hibrid

    Runbook Architecture

    Bekerja dengan parameter runbook

    Saat Anda memulai runbook dari portal Microsoft Azure atau Windows PowerShell, instruksi akan dikirim melalui layanan web Azure Automation. Layanan ini tidak mendukung parameter dengan jenis data yang kompleks. Jika Anda perlu memberikan nilai untuk parameter kompleks, maka Anda harus memanggilnya sebaris dari runbook lain seperti yang dijelaskan dalam Runbook Elemen Anak di Azure Automation.

    Layanan web Azure Automation menyediakan fungsionalitas khusus untuk parameter yang menggunakan jenis data tertentu seperti yang dijelaskan di bagian berikut ini.

    Nilai bernama

    Jika parameternya adalah jenis data [objek], maka Anda dapat menggunakan format JSON berikut untuk mengirimkannya daftar nilai bernama: {Name1:'Value1', Name2:'Value2', Name3:'Value3'}. Nilai-nilai ini harus jenis sederhana. Runbook menerima parameter sebagai PSCustomObject dengan properti yang sesuai dengan setiap nilai bernama.

    Pertimbangkan runbook pengujian berikut yang menerima parameter yang disebut pengguna.

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

    Teks berikut dapat digunakan untuk parameter pengguna.

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

    Perintah ini menghasilkan output berikut:

    Joe
    Smith
    Joe
    Smith
    

    Larik

    Jika parameternya adalah larik seperti [array] atau [string[]], maka Anda dapat menggunakan format JSON berikut untuk mengirimkannya daftar nilai: [Value1, Value2, Value3]. Nilai-nilai ini harus jenis sederhana.

    Pertimbangkan runbook pengujian berikut yang menerima parameter yang disebut pengguna.

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

    Teks berikut dapat digunakan untuk parameter pengguna.

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

    Perintah ini menghasilkan output berikut:

    Joe
    Smith
    Joe
    Smith
    

    Kredensial

    Jika parameternya adalah jenis data PSCredential, Anda dapat memberikan nama aset info masuk Azure Automation. Runbook akan mengambil info masuk dengan nama yang Anda tentukan. Runbook pengujian berikut menerima parameter yang disebut credential.

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

    Teks berikut dapat digunakan untuk parameter pengguna dengan asumsi bahwa ada aset info masuk yang disebut My Credential.

    My Credential
    

    Output berikut akan ditampilkan dengan asumsi bahwa nama pengguna dalam info masuk adalah jsmith.

    jsmith
    

    Memulai runbook dengan portal Microsoft Azure

    1. Di portal Microsoft Azure, pilih Azure Automation, lalu klik nama akun Azure Automation.
    2. Dari panel kiri, pilih Runbook.
    3. Pada halaman Runbook, pilih runbook, lalu klik Mulai.
    4. Jika runbook memiliki parameter, Anda akan diminta untuk memberikan nilai dengan kotak teks untuk setiap parameter. Untuk informasi selengkapnya tentang parameter, lihat Parameter Runbook.
    5. Pada panel Pekerjaan, Anda dapat melihat status pekerjaan runbook.

    Memulai runbook dengan PowerShell

    Anda dapat menggunakan Start-AzAutomationRunbook untuk memulai runbook dengan Windows PowerShell. Kode contoh berikut memulai runbook yang disebut Test-Runbook.

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

    Start-AzAutomationRunbook akan mengembalikan objek pekerjaan yang dapat Anda gunakan untuk melacak status setelah runbook dimulai. Anda kemudian dapat menggunakan objek pekerjaan ini dengan Get-AzAutomationJob untuk menentukan status pekerjaan dan Get-AzAutomationJobOutput untuk mengambil output-nya. Contoh berikut memulai runbook yang disebut Test-Runbook, menunggu hingga prosesnya selesai, lalu menampilkan output-nya.

    $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
    

    Jika runbook memerlukan parameter, maka Anda harus menyediakannya sebagai hashtable. Kunci hashtable harus sesuai dengan nama parameter dan nilainya adalah nilai parameter. Contoh berikut menunjukkan cara memulai runbook dengan dua parameter string bernama FirstName dan LastName, bilangan bulat bernama RepeatCount, dan parameter boolean bernama Show. Untuk informasi selengkapnya tentang parameter, lihat Parameter Runbook.

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

    Langkah berikutnya