Spouštění rutin Azure PowerShell 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 na Azure najednou v rámci jedné relace PowerShellu.

Tento článek je stručný přehled toho, jak spustit rutiny Azure PowerShell jako úlohy PowerShellu a zkontrolovat dokončení. Spouštění příkazů v Azure PowerShell vyžaduje použití kontextů Azure PowerShell, které jsou podrobně popsané v kontextech Azure a přihlašovacích údajích. 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 Azure kontextové objekty 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 s libovolnou rutinou Azure PowerShell, 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 PowerShell. 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.

Stav spuštěné úlohy můžete zkontrolovat pomocí rutiny Get-Job . Prozatímní výstup z úlohy získáte pomocí rutiny Receive-Job.

Pokud chcete zkontrolovat průběh operace vzdáleně na 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 taky