Menjalankan cmdlet Azure PowerShell di Pekerjaan PowerShell

Azure PowerShell bergantung pada menyambungkan ke cloud Azure dan menunggu respons, sehingga sebagian besar cmdlet ini memblokir sesi PowerShell Anda hingga mereka mendapatkan respons dari cloud. Pekerjaan PowerShell memungkinkan Anda menjalankan cmdlet di latar belakang atau melakukan beberapa tugas pada Azure sekaligus, dari dalam satu sesi PowerShell.

Artikel ini adalah gambaran umum singkat tentang cara menjalankan cmdlet Azure PowerShell sebagai Pekerjaan PowerShell dan memeriksa apakah sudah selesai. Menjalankan perintah di Azure PowerShell memerlukan penggunaan konteks Azure PowerShell, yang dibahas secara rinci dalam konteks Azure dan kredensial masuk. Untuk mempelajari selengkapnya tentang Pekerjaan PowerShell, lihat Tentang Pekerjaan PowerShell.

Konteks Azure dengan tugas PowerShell

Pekerjaan PowerShell dijalankan sebagai proses terpisah tanpa sesi PowerShell yang dilampirkan, sehingga kredensial Azure Anda harus dibagikan dengannya. Kredensial diteruskan sebagai objek konteks Azure, menggunakan salah satu metode berikut:

  • Persistensi konteks otomatis. Persistensi konteks diaktifkan secara default dan mempertahankan informasi masuk Anda di beberapa sesi. Dengan persistensi konteks diaktifkan, konteks Azure saat ini diteruskan ke proses baru:

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • Berikan objek konteks Azure dengan cmdlet Azure PowerShell apa pun yang memiliki parameter AzContext:

    $context = Get-AzContext -Name 'mycontext' # Get an Azure context object
    $vmadmin = Get-Credential
    
    $job = Start-Job {
      New-AzVM -Name MyVm -AzContext $Using:context -Credential $Using:vmadmin
    }
    

    Jika persistensi konteks dinonaktifkan, parameter AzContext diperlukan.

  • Gunakan parameter AsJob yang disediakan oleh beberapa cmdlet Azure PowerShell. Parameter ini secara otomatis memulai cmdlet sebagai PowerShell Job dengan menggunakan konteks Azure yang aktif.

    $vmadmin = Get-Credential
    $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
    

    Untuk melihat apakah cmdlet mendukung AsJob, periksa dokumentasi referensinya. Parameter AsJob tidak memerlukan penyimpanan otomatis konteks untuk diaktifkan.

Anda dapat memeriksa status pekerjaan yang sedang berjalan dengan cmdlet Get-Job . Untuk mendapatkan output dari pekerjaan sejauh ini, gunakan cmdlet Receive-Job .

Untuk memeriksa kemajuan operasi dari jarak jauh pada Azure, gunakan cmdlet Get yang terkait dengan jenis sumber daya yang dimodifikasi oleh pekerjaan:

$vmadmin = Get-Credential
$context = Get-AzContext -Name 'mycontext'
$vmName = 'MyVm'

$job = Start-Job {
  New-AzVM -Name $Using:vmName -AzContext $Using:context -Credential $Using:vmadmin
}

Get-Job -Id $job.Id
Get-AzVM -Name $vmName

Lihat Juga