Spouštění rutin Azure PowerShellu v úlohách PowerShellu
Azure PowerShell závisí na připojení ke cloudu Azure a čekání na odpovědi, takže většina těchto rutin blokuje relaci PowerShellu, dokud z cloudu nedostane odpověď. Úlohy PowerShellu umožňují spouštět rutiny na pozadí nebo provádět více úloh v Azure najednou v rámci jedné relace PowerShellu.
Tento článek stručně popisuje, jak spouštět rutiny Azure PowerShellu jako úlohy PowerShellu a kontrolovat jejich dokončení. Spouštění příkazů v Azure PowerShellu vyžaduje použití kontextů Azure PowerShellu, které jsou podrobně popsané v části Kontexty Azure a přihlašovací údaje. Další informace o úlohách PowerShellu najdete v tématu Informace o úlohách PowerShellu.
Kontexty Azure s úlohami PowerShellu
Úlohy PowerShellu se spouští jako samostatné procesy bez připojené relace PowerShellu, takže se s nimi musí sdílet přihlašovací údaje Azure. Přihlašovací údaje se předávají jako kontextové objekty Azure pomocí jedné z těchto metod:
Automatická trvalost kontextu. Trvalost kontextu je ve výchozím nastavení povolená a zachovává vaše přihlašovací údaje napříč několika relacemi. Když je trvalost kontextu povolená, aktuální kontext Azure se předává novému procesu:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Zadejte objekt kontextu Azure pomocí jakékoli rutiny Azure PowerShellu , která má parametr 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 }
Pokud je trvalost kontextu zakázaná, je vyžadován parametr AzContext .
Použijte parametr AsJob poskytovaný některými rutinami Azure PowerShellu. Tento přepínač automaticky spustí rutinu jako úlohu PowerShellu pomocí aktivního kontextu Azure:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Pokud chcete zjistit, jestli rutina podporuje AsJob, projděte si referenční dokumentaci. Parametr AsJob nevyžaduje povolení automatického ukládání kontextu.
Ke kontrole stavu spuštěné úlohy můžete využít rutinu Get-Job. K získání výstupu z úlohy až do aktuálního okamžiku můžete využít rutinu Receive-Job.
Pokud chcete průběh operace v Azure zkontrolovat na dálku, použijte rutiny Get
přidružené k typu prostředku, který příslušná úloha upravovuje:
$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