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 soddisfare questi scenari. 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 usando le API o gli SDK del piano di gestione Batch usando l'autenticazione di Microsoft 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à in 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 gestione: 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 di selezionare l'aggiornamento 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.
È 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: aggiornare la 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 per applicare la modalità 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"
}
}
}
Piano dati: Pool - Patch o Update Properties
Il piano dati 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 è consigliabile. Anche se Batch non impedisce la mutazione della raccolta con nodi attivi, questa operazione è sconsigliata, in quanto genera incoerenze nella raccolta di identità in caso di aumento del numero di istanze del pool. È 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.