Sdílet prostřednictvím


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

Viz také