Eseguire i cmdlet di Azure PowerShell nei processi di PowerShell
Il funzionamento di Azure PowerShell dipende dalla connessione a un cloud di Azure e dall'attesa di risposte, per cui molti cmdlet bloccano la sessione di PowerShell finché non ottengono una risposta dal cloud. I processi di PowerShell consentono di eseguire i cmdlet in background o di eseguire più attività in Azure contemporaneamente, dall'interno di una singola sessione di PowerShell.
Questo articolo include una breve panoramica sull'uso dei cmdlet di Azure PowerShell come processi di PowerShell e su come controllarne il completamento. L'esecuzione di comandi in Azure PowerShell richiede l'uso di contesti di Azure PowerShell, che vengono descritti in dettaglio nell'articolo Contesti e credenziali di accesso di Azure. Per altre informazioni sui processi di PowerShell, vedere Informazioni sui processi di PowerShell.
Contesti di Azure con processi di PowerShell
I processi di PowerShell vengono eseguiti come processi separati, senza una sessione di PowerShell collegata, quindi è necessario condividere con essi le credenziali di Azure. Le credenziali vengono passate come oggetti contesto di Azure, usando uno di questi metodi:
Persistenza automatica del contesto. La persistenza del contesto è abilitata per impostazione predefinita e mantiene le informazioni di accesso tra più sessioni. Con la persistenza del contesto abilitata, il contesto di Azure corrente viene passato al nuovo processo:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Fornire un oggetto contesto di Azure con qualsiasi cmdlet di Azure PowerShell con un parametro 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 }
Se la persistenza del contesto è disabilitata, è necessario il parametro AzContext .
Usare il parametro AsJob fornito da alcuni cmdlet di Azure PowerShell. Questa opzione avvia automaticamente il cmdlet come processo di PowerShell usando il contesto di Azure attivo:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Per verificare se un cmdlet supporta AsJob, controllare la relativa documentazione di riferimento. Il parametro AsJob non richiede l'abilitazione del salvataggio automatico del contesto.
È possibile controllare lo stato di un processo in esecuzione con il cmdlet Get-Job. Per ottenere l'output immediato di un processo, usare il cmdlet Receive-Job.
Per controllare lo stato di avanzamento di un'operazione in remoto in Azure, usare i cmdlet Get
associati al tipo di risorsa modificato dal processo:
$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
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per