Menjalankan cmdlet Azure PowerShell di Pekerjaan PowerShell

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

Artikel ini adalah ringkasan gambaran umum tentang cara menjalankan cmdlet Azure PowerShell sebagai Pekerjaan PowerShell dan memeriksa penyelesaiannya. Menjalankan perintah di Azure PowerShell memerlukan penggunaan konteks Azure PowerShell, yang tercakup secara mendetail di konteks Azure dan informasi masuk. Untuk mempelajari selengkapnya tentang Pekerjaan PowerShell, lihat Tentang Pekerjaan PowerShell.

Konteks Azure dengan pekerjaan PowerShell

Pekerjaan PowerShell dijalankan sebagai proses terpisah tanpa sesi PowerShell terlampir, sehingga informasi masuk Azure Anda harus dibagikan dengan Pekerjaan. Informasi masuk diteruskan sebagai objek konteks Azure, menggunakan metode ini:

  • Persistensi konteks otomatis. Persistensi konteks diaktifkan secara default dan mempertahankan informasi masuk di beberapa sesi. Dengan persistensi konteks yang 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. Peralihan ini memulai secara otomatis cmdlet sebagai Pekerjaan PowerShell, menggunakan konteks Azure 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 di Azure, gunakan cmdlet Get yang berkaitan 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