Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si crea un pool di Azure Batch, si specificano determinate proprietà che definiscono la configurazione del pool. Ad esempio, vengono specificate le dimensioni della macchina virtuale, l'immagine della macchina virtuale da usare, la configurazione della rete virtuale e le impostazioni di crittografia. Tuttavia, potrebbe essere necessario aggiornare le proprietà del pool man mano che il carico di lavoro si evolve nel tempo o se un'immagine di macchina virtuale raggiunge la fine del suo ciclo di vita.
Per alcune di queste proprietà del pool, ma non per tutte, è possibile applicare una patch o aggiornarle per gestire queste situazioni. Questo articolo fornisce informazioni sulle proprietà del pool aggiornabili, sui comportamenti previsti per gli aggiornamenti delle proprietà del pool ed esempi.
Suggerimento
Alcune proprietà del pool possono essere aggiornate solo tramite le API o gli SDK del piano di gestione Batch con autenticazione Entra. Sarà necessario installare o usare l'API o l'SDK appropriato affinché queste operazioni siano disponibili.
Proprietà del pool aggiornabili
Batch fornisce più metodi per aggiornare le proprietà di un pool. La selezione dell'API da usare determina il set di proprietà del pool che possono essere aggiornate e il comportamento dell'aggiornamento.
Nota
Se si desidera aggiornare le proprietà del pool che non fanno parte delle API di aggiornamento o patch seguenti, è necessario ricreare il pool per riflettere lo stato desiderato.
Piano di controllo: Pool - Update
Il percorso consigliato per aggiornare le proprietà del pool prevede l'utilizzo dell'API Pool - Update come parte dell'API o dell'SDK del piano di gestione Batch. Questa API offre il modo più completo e flessibile per aggiornare le proprietà del pool. L'utilizzo di questa API consente l'aggiornamento selettivo solo delle proprietà del pool del piano di gestione e la possibilità di aggiornare altre proprietà che altrimenti non sarebbero modificabili tramite le API del piano dati.
Importante
È necessario usare l'API versione 2024-07-01 o successiva dell'API del piano di gestione Batch per aggiornare le proprietà del pool, come descritto in questa sezione.
Poiché si tratta di un'operazione PATCH, vengono aggiornate solo le proprietà del pool specificate nella richiesta.
Se le proprietà non vengono specificate come parte della richiesta, i valori esistenti rimangono invariati.
Alcune proprietà possono essere aggiornate solo quando il pool non contiene nodi attivi o se il numero totale di nodi di calcolo nel pool è zero. Le proprietà che non richiedono che il numero di nodi del pool sia pari a zero affinché il nuovo valore abbia effetto sono:
- applicationPackages
- certificati
- metadata
- scaleSettings
- startTask
Se sono presenti nodi attivi quando il pool viene aggiornato con queste proprietà, potrebbe essere necessario riavviare i nodi di calcolo attivi affinché le modifiche abbiano effetto. Per altre informazioni, vedere la documentazione per ogni singola proprietà del pool.
Tutte le altre proprietà del pool aggiornabili richiedono che il numero di nodi del pool sia pari a zero per essere accettate come parte della richiesta di aggiornamento.
Ad esempio, modifiche a vmSize, deploymentConfiguration, diskEncryptionConfiguration, o securityProfile richiedono che il pool sia nello stato di allocazione Steady con zero nodi dedicati e Spot o a bassa priorità. Quando ridimensioni il pool dopo l'aggiornamento, Batch crea una nuova distribuzione di elaborazione sottostante utilizzando la configurazione aggiornata.
È anche possibile usare l'API Pool - Create per aggiornare queste proprietà specifiche, ma poiché si tratta di un'operazione PUT, la richiesta sostituisce completamente tutte le proprietà esistenti. Di conseguenza, qualsiasi proprietà non specificata nella richiesta viene rimossa o impostata con il valore predefinito associato.
Esempio: aggiornamento della specifica dell'immagine della macchina virtuale
L'esempio seguente illustra come aggiornare la configurazione di un'immagine di macchina virtuale del pool tramite l'SDK C# del piano di gestione:
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}");
}
Esempio: aggiornare le dimensioni della macchina virtuale e la modalità di comunicazione del nodo di destinazione
L'esempio seguente illustra come aggiornare le dimensioni dell'immagine di una macchina virtuale del pool e la modalità di comunicazione del nodo di destinazione da impostare su semplificata tramite l'API REST:
PATCH https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-07-01
Corpo della richiesta
{
"type": "Microsoft.Batch/batchAccounts/pools",
"parameters": {
"properties": {
"vmSize": "standard_d32ads_v5",
"targetNodeCommunicationMode": "simplified"
}
}
}
Esempio: migra da Crittografia dischi di Azure a crittografia presso l'host
Crittografia dischi di Azure for Batch pool si ritirerà il 15 settembre 2028.
Se un pool può usare Crittografia dischi di Azure per la crittografia del disco temporaneo, ridimensiona il pool a nodi zero e attendi che il suo stato di allocazione diventi Stabile. Poi usa una versione 2024-07-01 API o successiva per selezionare una dimensione di VM supportata, se necessario, e imposta securityProfile.encryptionAtHost su true.
Dopo l'aggiornamento, ridimensiona il pool al numero richiesto di nodi target. Batch crea una nuova distribuzione di calcolo sottostante con la crittografia all'host abilitata. Per la procedura completa di migrazione e un esempio di richiesta, vedi Migra un pool esistente alla crittografia dell'host.
Piano dati: Pool - Patch o Aggiorna proprietà
Il Data Plane offre la possibilità di applicare patch o aggiornare le proprietà del pool selezionate. L'API disponibile è l'API Pool - Update Properties come parte dell'API del piano dati batch o dell'SDK.
L'API Update Properties consente di aggiornare le proprietà del pool selezionate come specificato nella documentazione. Questa richiesta sostituisce completamente le proprietà esistenti, pertanto tutte le proprietà non specificate nella richiesta vengono rimosse.
È necessario riavviare i nodi di calcolo affinché le modifiche abbiano effetto per le proprietà seguenti:
- applicationPackageReferences
- certificateReferences
- startTask
Il pool deve essere ridimensionato a zero nodi attivi per gli aggiornamenti alla proprietà targetNodeCommunicationMode.
Domande frequenti
- È necessario eseguire altre operazioni dopo l'aggiornamento delle proprietà del pool se nel pool sono presenti nodi attivi?
Sì, per le proprietà del pool che possono essere aggiornate con nodi attivi, alcune proprietà richiedono il riavvio dei nodi di calcolo. In alternativa, il pool può essere ridotto a zero nodi per riflettere le proprietà modificate.
- È possibile modificare la raccolta di identità gestite nel pool mentre nel pool sono presenti nodi attivi?
Sì, ma non dovresti. Anche se Batch non impedisce la mutazione della raccolta con nodi attivi, questa operazione è sconsigliata, in quanto genera incoerenze nella raccolta di identità se il pool viene scalato orizzontalmente. È consigliabile aggiornare questa proprietà solo quando le dimensioni del pool sono pari a zero. Per altre informazioni, vedere l'articolo Configurare le identità gestite.
Passaggi successivi
- Altre informazioni sulle API e gli strumenti di Batch disponibili.
- Informazioni su come controllare i pool e i nodi per individuare gli errori.