Exécuter des applets de commande Azure PowerShell dans des travaux PowerShell

Azure PowerShell dépend de la connexion à un cloud Azure et de l’attente des réponses : la plupart de ces applets de commande bloquent donc votre session PowerShell jusqu’à ce qu’elles reçoivent une réponse du cloud. Les travaux PowerShell vous permettent d’exécuter des applets de commande en arrière-plan ou d’effectuer plusieurs tâches en même temps sur Azure, à partir d’une seule session PowerShell.

Cet article est une brève vue d’ensemble de la façon d’exécuter des applets de commande Azure PowerShell en tant que travaux PowerShell et de vérifier leur achèvement. L’exécution de commandes dans Azure PowerShell nécessite l’utilisation de contextes Azure PowerShell, qui sont abordés en détail dans Contextes et informations d’identification de connexion Azure. Pour plus d’informations sur les travaux PowerShell, consultez À propos des travaux PowerShell.

Contextes Azure avec des travaux PowerShell

Les travaux PowerShell sont exécutés en tant que processus distincts sans session PowerShell attachée : vos informations d’identification Azure doivent donc être partagées avec ces travaux. Les informations d’identification sont passées en tant qu’objets de contexte Azure, selon une des méthodes suivantes :

  • Persistance de contexte automatique La persistance de contexte est activée par défaut et elle conserve vos informations de connexion entre plusieurs sessions. Si la persistance du contexte est activée, le contexte Azure actuel est passé au nouveau processus :

    Enable-AzContextAutosave # Enables context autosave if not already on
    $vmadmin = Get-Credential
    
    Start-Job {
      New-AzVM -Name MyVm -Credential $Using:vmadmin
    }
    
  • Fournissez un objet de contexte Azure avec n’importe quelle cmdlet Azure PowerShell qui a un paramètre 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
    }
    

    Si la persistance de contexte est désactivée, le paramètre AzContext est obligatoire.

  • Utilisez le paramètre AsJob fourni par certaines applets de commande Azure PowerShell. Ce paramètre démarre automatiquement l’applet de commande en tant que travail PowerShell, en utilisant le contexte Azure actif :

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

    Pour voir si une applet de commande prend en charge AsJob, consultez sa documentation de référence. Le paramètre AsJob ne nécessite pas que l’enregistrement automatique du contexte soit activé.

Vous pouvez vérifier l’état d’un travail en cours d’exécution avec l’applet de commande Get-Job. Pour obtenir le résultat d’un travail à un moment donné, utilisez l’applet de commande Receive-Job.

Pour vérifier la progression d’une opération à distance sur Azure, utilisez les applets de commande Get associées au type de ressource modifié par le travail :

$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

Voir aussi