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.
Lorsque vous créez un pool Azure Batch, vous spécifiez certaines propriétés qui définissent la configuration du pool. Les exemples incluent la spécification de la taille de machine virtuelle, de l’image de machine virtuelle à utiliser, de la configuration du réseau virtuel et des paramètres de chiffrement. Toutefois, vous devrez peut-être mettre à jour les propriétés du pool à mesure que votre charge de travail évolue ou si une image de machine virtuelle atteint sa fin de vie.
Certaines de ces propriétés de pool, mais pas toutes, peuvent être corrigées ou mises à jour pour s’adapter à ces situations. Cet article fournit des informations sur les propriétés de pool pouvant être mises à jour, les comportements attendus pour les mises à jour des propriétés du pool et des exemples.
Conseil
Certaines propriétés de pool ne peuvent être mises à jour qu’à l’aide des API de plan de gestion Batch ou des Kits de développement logiciel (SDK) à l’aide de l’authentification Entra. Vous devez installer ou utiliser l’API ou le Kit de développement logiciel (SDK) approprié pour que ces opérations soient disponibles.
Propriétés de pool pouvant être mises à jour
Batch fournit plusieurs méthodes pour mettre à jour les propriétés d’un pool. La sélection de l’API à utiliser détermine l’ensemble des propriétés du pool qui peuvent être mises à jour, ainsi que le comportement de mise à jour.
Remarque
Si vous souhaitez mettre à jour les propriétés du pool qui ne font pas partie des API de mise à jour ou de correctif suivantes, vous devez recréer le pool pour refléter l’état souhaité.
Plan de gestion : pool – mise à jour
Le chemin recommandé pour mettre à jour les propriétés du pool consiste à utiliser l’API Pool – Mettre à jour dans le cadre du Kit de développement logiciel (SDK) ou de l’API de plan de gestion Batch. Cette API fournit le moyen le plus complet et flexible de mettre à jour les propriétés du pool. L’utilisation de cette API permet de sélectionner la mise à jour des propriétés du plan de gestion uniquement et la possibilité de mettre à jour d’autres propriétés qui seraient sinon immuables via les API de plan de données.
Important
Vous devez utiliser l’API version 2024-07-01 ou ultérieure de l’API de plan de gestion Batch pour mettre à jour les propriétés du pool, comme décrit dans cette section.
Étant donné que cette opération est un PATCH, seules les propriétés de pool spécifiées dans la requête sont mises à jour.
Si les propriétés ne sont pas spécifiées dans le cadre de la requête, les valeurs existantes restent inchangées.
Certaines propriétés ne peuvent être mises à jour que lorsque le pool n’a pas de nœuds actifs ou où le nombre total de nœuds de calcul dans le pool est égal à zéro. Les propriétés qui ne nécessitent pas que le pool soit de taille zéro pour que la nouvelle valeur prenne effet sont les suivantes :
- paquets d'applications
- certificates
- métadonnées
- scaleSettings
- startTask
S’il existe des nœuds actifs lorsque le pool est mis à jour avec ces propriétés, le redémarrage des nœuds de calcul actifs peut être nécessaire pour que les modifications prennent effet. Pour plus d’informations, consultez la documentation de chaque propriété de pool.
Toutes les autres propriétés du pool pouvant être mises à jour nécessitent que le pool soit de taille zéro nœud pour être accepté comme composant de la requête de mise à jour.
Vous pouvez également utiliser l’API Pool – Créer pour mettre à jour ces propriétés de sélection, mais étant donné que l’opération est un PUT, la requête remplace entièrement toutes les propriétés existantes. Par conséquent, toute propriété qui n’est pas spécifiée dans la requête est supprimée ou définie avec la valeur par défaut associée.
Exemple : mettre à jour la spécification de l’image de machine virtuelle
L’exemple suivant montre comment mettre à jour une configuration d’image de machine virtuelle de pool via le Kit de développement logiciel (SDK) C# du plan de gestion :
public async Task UpdatePoolVmImage()
{
// Authenticate
var clientId = Environment.GetEnvironmentVariable("CLIENT_ID");
var clientSecret = Environment.GetEnvironmentVariable("CLIENT_SECRET");
var tenantId = Environment.GetEnvironmentVariable("TENANT_ID");
var subscriptionId = Environment.GetEnvironmentVariable("SUBSCRIPTION_ID");
ClientSecretCredential credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
ArmClient client = new ArmClient(credential, subscriptionId);
// Get an existing Batch account
string resourceGroupName = "<resourcegroup>";
string accountName = "<batchaccount>";
ResourceIdentifier batchAccountResourceId = BatchAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, accountName);
BatchAccountResource batchAccount = client.GetBatchAccountResource(batchAccountResourceId);
// get the collection of this BatchAccountPoolResource
BatchAccountPoolCollection collection = batchAccount.GetBatchAccountPools();
// Update the pool
string poolName = "mypool";
BatchAccountPoolData data = new BatchAccountPoolData()
{
DeploymentConfiguration = new BatchDeploymentConfiguration()
{
VmConfiguration = new BatchVmConfiguration(new BatchImageReference()
{
Publisher = "MicrosoftWindowsServer",
Offer = "WindowsServer",
Sku = "2022-datacenter-azure-edition-smalldisk",
Version = "latest",
},
nodeAgentSkuId: "batch.node.windows amd64"),
},
};
ArmOperation<BatchAccountPoolResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, poolName, data);
BatchAccountPoolResource result = lro.Value;
BatchAccountPoolData resourceData = result.Data;
Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}
Exemple : mettre à jour la taille de machine virtuelle et le mode de communication de nœud cible
L’exemple suivant montre comment mettre à jour une taille d’image de machine virtuelle de pool et cibler le mode de communication de nœud à simplifier via l’API REST :
PATCH https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-07-01
Corps de la requête
{
"type": "Microsoft.Batch/batchAccounts/pools",
"parameters": {
"properties": {
"vmSize": "standard_d32ads_v5",
"targetNodeCommunicationMode": "simplified"
}
}
}
Plan de données : Pool - Propriétés de correctif ou de mise à jour
Le plan de données offre la possibilité de corriger ou de mettre à jour les propriétés de pool sélectionnées. L’API disponible est l’API Pool - Mettre à jour les propriétés dans le cadre de l’API de plan de données Batch ou du Kit de développement logiciel (SDK).
L’API Update Properties permet de sélectionner la mise à jour des propriétés du pool, comme spécifié dans la documentation. Cette requête remplace entièrement les propriétés existantes, par conséquent toute propriété qui n’est pas spécifiée dans la requête est supprimée.
Les nœuds de calcul doivent être redémarrés pour que les modifications prennent effet pour les propriétés suivantes :
- applicationPackageReferences
- références de certificat
- startTask
Le pool doit être redimensionné sur zéro nœud actif pour les mises à jour de la propriété targetNodeCommunicationMode.
FAQ
- Dois-je effectuer d’autres opérations après la mise à jour des propriétés du pool si le pool présente des nœuds actifs ?
Oui, pour les propriétés de pool qui peuvent être mises à jour avec des nœuds actifs, il existe des propriétés sélectionnées qui nécessitent le redémarrage des nœuds de calcul. Le pool peut également être réduit à zéro nœud pour refléter les propriétés modifiées.
- Puis-je modifier la collection d’identités managées sur le pool s’il contient des nœuds actifs ?
Oui, mais vous ne devriez pas le faire. Bien que Batch n’interdit pas la mutation de la collection avec des nœuds actifs, nous vous recommandons d’éviter de le faire, car cela entraîne une incohérence dans la collection d’identités si le pool est mis à l’échelle. Nous vous recommandons de mettre à jour cette propriété uniquement lorsque le pool est de taille zéro. Pour plus d’informations, consultez l’article Configurer les identités managées.
Étapes suivantes
- En savoir plus sur les API et outils Batch disponibles.
- Découvrez comment vérifier la présence d’erreur dans les pools et les nœuds.