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 w ramach 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 }
Podaj obiekt kontekstu platformy Azure za pomocą dowolnego polecenia cmdlet programu Azure PowerShell, które ma 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 }
Jeśli trwałość kontekstu jest wyłączona, wymagany jest parametr AzContext .
Użyj parametru AsJob dostarczonego przez niektóre polecenia cmdlet programu 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 usługę AsJob, zapoznaj się z 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