Uruchamianie poleceń cmdlet środowiska Azure PowerShell w zadaniach programu PowerShell

Środowisko Azure PowerShell polega na nawiązywaniu połączenia z chmurą platformy Azure i oczekiwaniu na odpowiedzi, dlatego większość tych poleceń cmdlet blokuje sesję programu PowerShell do czasu uzyskania odpowiedzi z chmury. Zadania programu PowerShell umożliwiają uruchamianie poleceń cmdlet w tle lub wykonywanie wielu zadań na platformie Azure jednocześnie z poziomu jednej sesji programu PowerShell.

Ten artykuł zawiera krótkie omówienie sposobu uruchamiania poleceń cmdlet środowiska Azure PowerShell jako zadań programu PowerShell i sprawdzania, czy zostały one ukończone. Uruchamianie poleceń w środowisku Azure PowerShell wymaga używania kontekstów środowiska Azure PowerShell, które szczegółowo opisano w sekcji Poświadczenia logowania i konteksty platformy Azure. Aby dowiedzieć się więcej na temat zadań programu PowerShell, zobacz Informacje o zadaniach programu PowerShell.

Konteksty platformy Azure z zadaniami programu PowerShell

Zadania programu PowerShell są uruchamiane jako oddzielne procesy bez dołączonej sesji programu PowerShell, dlatego Twoje poświadczenia platformy Azure muszą być im udostępnione. Poświadczenia są przekazywane jako obiekty kontekstu platformy Azure przy użyciu jednej z tych metod:

  • Automatyczna trwałość kontekstu. Trwałość kontekstu jest domyślnie włączona i zachowuje informacje logowania w wielu sesjach. Po włączeniu trwałości kontekstu bieżący kontekst platformy Azure jest przenoszony do nowego procesu:

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • Użyj parametru AzContext z dowolnym poleceniem cmdlet Azure PowerShell, aby podać obiekt kontekstu platformy Azure:

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

    Jeśli trwałość kontekstu jest wyłączona, AzContext parametr jest wymagany.

  • Użyj parametru dostarczonego AsJob przez niektóre polecenia cmdlet Azure PowerShell. Ten przełącznik automatycznie uruchamia polecenie cmdlet jako zadanie programu PowerShell przy użyciu aktywnego kontekstu platformy Azure:

    $vmadmin = Get-Credential
    $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
    

    Aby sprawdzić, czy polecenie cmdlet obsługuje przełącznik AsJob, zapoznaj się z jego dokumentacją referencyjną. Parametr AsJob nie wymaga włączenia automatycznego zapisywania kontekstu.

Stan uruchomionego zadania można sprawdzić przy użyciu polecenia cmdlet Get-Job. Aby pobrać dane wyjściowe z zadania do tej pory, użyj polecenia cmdlet Receive-Job.

Aby sprawdzić postęp operacji zdalnie na platformie Azure, użyj poleceń cmdlet Get skojarzonych z typem zasobu modyfikowanym przez zadanie:

$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

Zobacz też