Executar cmdlets do Azure PowerShell em Trabalhos do PowerShell
O Azure PowerShell depende da conexão a uma nuvem do Azure e da espera por respostas, portanto, a maioria desses cmdlets bloqueia sua sessão do PowerShell até obter uma resposta da nuvem. Os Trabalhos do PowerShell permitem executar cmdlets em segundo plano ou realizar múltiplas tarefas no Azure simultaneamente, a partir de uma única sessão do PowerShell.
Este artigo é uma visão geral concisa de como executar cmdlets do Azure PowerShell como PowerShell Jobs e monitorizar a sua conclusão. A execução de comandos no Azure PowerShell requer o uso de contextos do Azure PowerShell, que são abordados em detalhes 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 automática do contexto. 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 para qualquer cmdlet do Azure PowerShell que tenha o 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 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 suporta AsJob, verifique a sua documentação de referência. O parâmetro AsJob não requer 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. Até agora, para obter a saída de um trabalho, use o cmdlet Receive-Job.
Para verificar o progresso de uma operação remotamente no Azure, use os Get
cmdlets 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
Ver também
Azure PowerShell