Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avec les applets de commande Azure Batch pour PowerShell, vous pouvez effectuer et automatiser par script de nombreuses tâches courantes de Batch. Il s’agit d’une présentation rapide des applets de commande que vous pouvez utiliser pour gérer vos comptes Batch et utiliser vos ressources Batch telles que des pools, des travaux et des tâches.
Pour obtenir la liste complète des applets de commande Batch et de la syntaxe détaillée des applets de commande, consultez la référence de l’applet de commande Azure Batch.
Nous vous recommandons de mettre à jour fréquemment vos modules Azure PowerShell pour tirer parti des mises à jour et améliorations du service.
Prerequisites
Installez et configurez le module Azure PowerShell. Pour installer un module Azure Batch spécifique, tel qu’un module en préversion, consultez la PowerShell Gallery.
Exécutez l’applet de commande Connect-AzAccount pour vous connecter à votre abonnement (les applets de commande Azure Batch sont fournies dans le module Azure Resource Manager) :
Connect-AzAccountInscrivez-vous dans l’espace de noms de fournisseur Batch. Vous n’avez besoin d’effectuer cette opération qu’une seule fois par abonnement.
Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
Gérer les comptes et clés Batch
Création d’un compte Batch
New-AzBatchAccount crée un compte Batch dans un groupe de ressources spécifié. Si vous n’avez pas encore de groupe de ressources, créez-en un en exécutant l’applet de commande New-AzResourceGroup . Spécifiez l’une des régions Azure dans le paramètre Location, par exemple « USA Centre ». Par exemple:
New-AzResourceGroup –Name MyBatchResourceGroup –Location "Central US"
Ensuite, créez un compte Batch dans le groupe de ressources. Spécifiez un nom pour le compte dans <account_name>, ainsi que l’emplacement et le nom de votre groupe de ressources. La création du compte Batch peut prendre un certain temps. Par exemple:
New-AzBatchAccount –AccountName <account_name> –Location "Central US" –ResourceGroupName <res_group_name>
Note
Le nom du compte Batch doit être unique à la région Azure du groupe de ressources, contenir entre 3 et 24 caractères, et utiliser uniquement des lettres minuscules et des chiffres.
Obtenir des clés d’accès au compte
Get-AzBatchAccountKeys affiche les clés d’accès associées à un compte Azure Batch. Par exemple, exécutez ce qui suit pour obtenir les clés primaires et secondaires du compte que vous avez créé.
$Account = Get-AzBatchAccountKeys –AccountName <account_name>
$Account.PrimaryAccountKey
$Account.SecondaryAccountKey
Générer une nouvelle clé d’accès
New-AzBatchAccountKey génère une nouvelle clé de compte primaire ou secondaire pour un compte Azure Batch. Par exemple, pour générer une nouvelle clé primaire pour votre compte Batch, tapez :
New-AzBatchAccountKey -AccountName <account_name> -KeyType Primary
Note
Pour générer une nouvelle clé secondaire, spécifiez « Secondary » pour le paramètre KeyType . Vous devez régénérer les clés primaires et secondaires séparément.
Supprimer un compte Batch
Remove-AzBatchAccount supprime un compte Batch. Par exemple:
Remove-AzBatchAccount -AccountName <account_name>
Lorsque vous y êtes invité, confirmez que vous souhaitez supprimer le compte. La suppression de compte peut prendre un certain temps.
Créer un objet BatchAccountContext
Vous pouvez vous authentifier pour gérer les ressources Batch à l’aide de l’authentification par clé partagée ou de l’authentification Microsoft Entra. Pour vous authentifier à l’aide des applets de commande Batch PowerShell, commencez par créer un objet BatchAccountContext pour stocker les informations d’identification ou l’identité de votre compte. Vous passez l’objet BatchAccountContext dans des applets de commande qui utilisent le paramètre BatchContext .
Authentification par clé partagée
$context = Get-AzBatchAccountKeys -AccountName <account_name>
Note
Par défaut, la clé primaire du compte est utilisée pour l’authentification, mais vous pouvez sélectionner explicitement la clé à utiliser en modifiant la propriété KeyInUse de votre objet BatchAccountContext : $context.KeyInUse = "Secondary".
Authentification par Microsoft Entra
$context = Get-AzBatchAccount -AccountName <account_name>
Créer et modifier des ressources Batch
Utilisez des applets de commande telles que New-AzBatchPool, New-AzBatchJob et New-AzBatchTask pour créer des ressources sous un compte Batch. Il existe des applets de commande correspondantes Get- et Set- pour mettre à jour les propriétés des ressources existantes, ainsi que des applets de commande Remove- pour supprimer des ressources dans un compte Batch.
Lorsque vous utilisez un grand nombre de ces applets de commande, en plus de transmettre un objet BatchContext, vous devez créer ou passer des objets qui contiennent des paramètres de ressources détaillés, comme illustré dans l’exemple suivant. Consultez l’aide détaillée de chaque applet de commande pour obtenir des exemples supplémentaires.
Créer un pool Batch
Lors de la création ou de la mise à jour d’un pool Batch, vous spécifiez une configuration. Les pools doivent généralement être configurés avec la configuration de machine virtuelle, ce qui vous permet de spécifier l’une des images de machine virtuelle Linux ou Windows prises en charge répertoriées dans la place de marché Machines virtuelles Azure, ou de fournir une image personnalisée que vous avez préparée. Les pools de configuration de Cloud Services fournissent uniquement des nœuds de calcul Windows et ne prennent pas en charge toutes les fonctionnalités de Batch.
Lorsque vous exécutez New-AzBatchPool, passez les paramètres du système d’exploitation dans un objet PSVirtualMachineConfiguration ou PSCloudServiceConfiguration. Par exemple, l’extrait de code suivant crée un pool Batch avec des nœuds de calcul de taille Standard_A1, dans la configuration de machine virtuelle, dont l’image est créée avec Ubuntu Server 20.04-LTS. Ici, le paramètre VirtualMachineConfiguration spécifie la variable $configuration comme objet PSVirtualMachineConfiguration. Le paramètre BatchContext spécifie une variable précédemment définie $context comme objet BatchAccountContext.
$imageRef = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("UbuntuServer","Canonical","20.04-LTS")
$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageRef, "batch.node.ubuntu 20.04")
New-AzBatchPool -Id "mypspool" -VirtualMachineSize "Standard_a1" -VirtualMachineConfiguration $configuration -AutoScaleFormula '$TargetDedicated=4;' -BatchContext $context
Le nombre cible de nœuds de calcul dans le nouveau pool est calculé par une formule de mise à l’échelle automatique. Dans ce cas, la formule est simplement $TargetDedicated=4, indiquant que le nombre de nœuds de calcul dans le pool est de 4 au maximum.
Requête relative aux pools, aux travaux, aux tâches et autres détails
Utilisez des applets de commande telles que Get-AzBatchPool, Get-AzBatchJob et Get-AzBatchTask pour rechercher les entités créées sous un compte Batch.
Requête de données
Par exemple, utilisez Get-AzBatchPools pour rechercher vos pools. Par défaut, cette requête concerne tous les pools sous votre compte, en supposant que vous avez déjà stocké l’objet BatchAccountContext dans $context :
Get-AzBatchPool -BatchContext $context
Utiliser un filtre OData
Vous pouvez fournir un filtre OData à l’aide du paramètre Filter pour rechercher uniquement les objets qui vous intéressent. Par exemple, vous pouvez trouver tous les pools avec des ID commençant par « myPool » :
$filter = "startswith(id,'myPool')"
Get-AzBatchPool -Filter $filter -BatchContext $context
Cette méthode n’est pas aussi flexible que l’utilisation de « Where-Object » dans un pipeline local. Toutefois, la requête est envoyée directement au service Batch afin que tous les filtrages se produisent côté serveur, ce qui permet d’économiser de la bande passante Internet.
Utiliser le paramètre Id
Une alternative à un filtre OData consiste à utiliser le paramètre Id . Pour rechercher un pool spécifique avec l’ID « myPool » :
Get-AzBatchPool -Id "myPool" -BatchContext $context
Le paramètre ID prend uniquement en charge la recherche d’ID complet ; pas les caractères génériques ni les filtres de style OData.
Utiliser le paramètre MaxCount
Par défaut, chaque applet de commande retourne un maximum de 1 000 objets. Si vous atteignez cette limite, affinez votre filtre pour ramener moins d’objets, ou définissez explicitement un maximum à l’aide du paramètre MaxCount . Par exemple:
Get-AzBatchTask -MaxCount 2500 -BatchContext $context
Pour supprimer la limite supérieure, définissez MaxCount sur 0 ou moins.
Utiliser le pipeline PowerShell
Les applets de commande Batch utilisent le pipeline PowerShell pour envoyer des données entre les applets de commande. Cela a le même effet que la spécification d’un paramètre, mais facilite l’utilisation de plusieurs entités.
Par exemple, recherchez et affichez toutes les tâches sous votre compte :
Get-AzBatchJob -BatchContext $context | Get-AzBatchTask -BatchContext $context
Redémarrez (redémarrez) chaque nœud de calcul dans un pool :
Get-AzBatchComputeNode -PoolId "myPool" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Gestion des packages d’application
Les packages d’applications offrent un moyen simplifié de déployer des applications sur les nœuds de calcul de vos pools. Avec les applets de commande Batch PowerShell, vous pouvez charger et gérer des packages d’application dans votre compte Batch et déployer des versions de package sur des nœuds de calcul.
Important
Vous devez lier un compte stockage Azure à votre compte Batch pour utiliser des packages d’application.
Créez une application :
New-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Ajoutez un package d’application :
New-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0" -Format zip -FilePath package001.zip
Définissez la version par défaut de l’application :
Set-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -DefaultVersion "1.0"
Répertorier les packages d’une application
$application = Get-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
$application.ApplicationPackages
Supprimer un package d’application
Remove-AzBatchApplicationPackage -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication" -ApplicationVersion "1.0"
Supprimer une application
Remove-AzBatchApplication -AccountName <account_name> -ResourceGroupName <res_group_name> -ApplicationId "MyBatchApplication"
Note
Vous devez supprimer toutes les versions du package d’application d’une application avant de supprimer l’application. Vous recevez une erreur « Conflit » si vous essayez de supprimer une application qui possède actuellement des packages d’application.
Déployer un package d’application
Vous pouvez spécifier un ou plusieurs packages d’application pour le déploiement lorsque vous créez un pool. Lorsque vous spécifiez un package au moment de la création du pool, il est déployé sur chacun des nœuds à mesure que celui-ci rejoint le pool. Les packages sont également déployés lorsqu’un nœud est redémarré ou réinitialisé.
Spécifiez l’option -ApplicationPackageReference lors de la création d’un pool afin de déployer un package d’application sur les nœuds du pool lorsqu’ils rejoignent celui-ci. Tout d’abord, créez un objet PSApplicationPackageReference et configurez-le avec l’ID d’application et la version du package que vous souhaitez déployer sur les nœuds de calcul du pool :
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "1.0"
Créez maintenant le pool et spécifiez l’objet de référence de package comme argument de l’option ApplicationPackageReferences :
New-AzBatchPool -Id "PoolWithAppPackage" -VirtualMachineSize "Small" -VirtualMachineConfiguration $configuration -BatchContext $context -ApplicationPackageReferences $appPackageReference
Vous trouverez plus d’informations sur les packages d’application dans Déployer des applications sur des nœuds de calcul avec des packages d’application Batch.
Mettre à jour les packages d’application d’un pool
Pour mettre à jour les applications affectées à un pool existant, commencez par créer un objet PSApplicationPackageReference avec les propriétés souhaitées (ID d’application et version du package) :
$appPackageReference = New-Object Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference
$appPackageReference.ApplicationId = "MyBatchApplication"
$appPackageReference.Version = "2.0"
Ensuite, récupérez le pool à partir de Batch, effacez les packages existants, ajoutez la nouvelle référence de package et mettez à jour le service Batch avec les nouveaux paramètres de pool :
$pool = Get-AzBatchPool -BatchContext $context -Id "PoolWithAppPackage"
$pool.ApplicationPackageReferences.Clear()
$pool.ApplicationPackageReferences.Add($appPackageReference)
Set-AzBatchPool -BatchContext $context -Pool $pool
Vous avez maintenant mis à jour les propriétés du pool dans le service Batch. Pour déployer réellement le nouveau package d’application sur des nœuds de calcul dans le pool, vous devez redémarrer ou réimager ces nœuds. Vous pouvez redémarrer chaque nœud d’un pool avec cette commande :
Get-AzBatchComputeNode -PoolId "PoolWithAppPackage" -BatchContext $context | Restart-AzBatchComputeNode -BatchContext $context
Conseil
Vous pouvez déployer plusieurs packages d’application sur les nœuds de calcul d’un pool. Si vous souhaitez ajouter un package d’application au lieu de remplacer les packages actuellement déployés, omettez la $pool.ApplicationPackageReferences.Clear() ligne ci-dessus.
Étapes suivantes
- Passez en revue la référence de l’applet de commande Azure Batch pour obtenir une syntaxe et des exemples d’applets de commande détaillés.
- Découvrez comment déployer des applications sur des nœuds de calcul avec des packages d’application Batch.