Executar cmdlets do Azure PowerShell nos Trabalhos do PowerShell
O Azure PowerShell depende de se conectar a uma nuvem do Azure e aguardar respostas, portanto, a maioria desses cmdlets bloqueia sua sessão do PowerShell até que eles obtenham uma resposta da nuvem. Os Trabalhos do PowerShell permitem executar cmdlets em segundo plano ou realizar várias tarefas no Azure de uma só vez, de dentro de uma única sessão do PowerShell.
Este artigo é uma breve visão geral de como executar cmdlets do Azure PowerShell como Trabalhos do PowerShell e verificar a conclusão. Executar comandos no Azure PowerShell requer o uso de contextos do Azure PowerShell, que são abordados detalhadamente em contextos do Azure e credenciais de entrada. Para saber mais sobre trabalhos do PowerShell, consulte Sobre trabalhos do PowerShell.
Contextos do Azure com trabalhos do PowerShell
Os Trabalhos do PowerShell são executados como processos separados sem uma sessão anexada do PowerShell, portanto, suas credenciais do Azure devem ser compartilhadas com eles. As credenciais são passadas como objetos de contexto do Azure usando um destes métodos:
Persistência de contexto automática. A persistência de contexto é habilitada por padrão e preserva suas informações de entrada em várias sessões. Com a persistência de contexto habilitada, o contexto atual do Azure é passado para o novo processo:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Forneça um objeto de contexto do Azure com qualquer cmdlet do Azure PowerShell que tenha um parâmetro 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 a persistência de contexto estiver desabilitada, o parâmetro do AzContext será necessário.
Use o parâmetro AsJob fornecido por alguns cmdlets do Azure PowerShell. Essa opção inicia automaticamente o cmdlet como um trabalho do PowerShell usando o contexto ativo do Azure:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Para ver se um cmdlet dá suporte a AsJob, verifique a documentação de referência. O parâmetro AsJob não exige que o salvamento automático de contexto seja habilitado.
Você pode verificar o status de um trabalho em execução com o cmdlet Get-Job . Para obter a saída de um trabalho até o momento, use o cmdlet Receive-Job.
Para verificar o progresso de uma operação remotamente no Azure, use os cmdlets Get
associados ao tipo de recurso que está sendo modificado pelo trabalho:
$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
Consulte Também
Azure PowerShell