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 nezískají odpověď z cloudu. Ú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 obsahuje stručný přehled toho, jak spustit rutiny Azure PowerShellu jako úlohy PowerShellu a zkontrolovat dokončení. Spouštění příkazů v Azure PowerShellu vyžaduje použití kontextů Azure PowerShellu, které jsou podrobně popsané v kontextech Azure a přihlašovacích údajů. Další informace o úlohách PowerShellu najdete v tématu O úlohách PowerShellu.

Kontexty Azure s úlohami PowerShellu

Úlohy PowerShellu se spouštějí jako samostatné procesy bez připojené relace PowerShellu, takže s nimi musí být sdílené 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á přihlašovací informace napříč několika relacemi. Když je zapnutá trvalost kontextu, aktuální kontext Azure se předá 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í libovolné 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á, vyžaduje se parametr AzContext.

  • Použijte parametr AsJob, který poskytuje některé rutiny 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 AsJobpodporuje, projděte si její referenční dokumentaci. Parametr AsJob nevyžaduje povolení automatického ukládání kontextu.

Stav spuštěné úlohy můžete zkontrolovat pomocí rutiny Get-Job. K získání výstupu z úlohy zatím použijte rutinu Receive-Job.

Pokud chcete zkontrolovat průběh operace vzdáleně v Azure, použijte rutiny Get přidružené k typu prostředku, který úloha upravuje:

$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é