Uppdatera egenskaper för Batch-reservpool

När du skapar en Azure Batch-pool anger du vissa egenskaper som definierar poolens konfiguration. Exempel är att ange vm-storlek, VM-avbildning som ska användas, konfiguration av virtuellt nätverk och krypteringsinställningar. Du kan dock behöva uppdatera poolegenskaperna när din arbetsbelastning utvecklas över tid eller om en VM-bild når slutet av sin livslängd.

Vissa, men inte alla, av dessa poolegenskaper kan åtgärdas eller uppdateras för att anpassas till dessa situationer. Den här artikeln tillhandahåller information om uppdaterbara pool-egenskaper, förväntade beteenden vid uppdateringar av poolegenskaper, samt exempel.

Tip

Vissa pool-egenskaper kan endast uppdateras med Batch Management Plane APIs eller SDKs med hjälp av Entra-autentisering. Du måste installera eller använda den lämpliga API eller SDK för att dessa operationer ska vara tillgängliga.

Uppdaterbara poolegenskaper

Batch tillhandahåller flera metoder för att uppdatera egenskaperna hos en pool. Om du väljer vilket API som ska användas avgörs den uppsättning poolegenskaper som kan uppdateras samt uppdateringsbeteendet.

Note

Om du vill uppdatera poolegenskaper som inte ingår i följande API:er för uppdatering eller korrigering måste du återskapa poolen för att återspegla önskat tillstånd.

Management Plane: Pool - Uppdatera

Den rekommenderade metoden för att uppdatera poolens egenskaper är att använda Pool - Update API som en del av Batch Management Plane API eller SDK. Denna API ger det mest omfattande och flexibla sättet att uppdatera egenskaperna för poolen. Användning av denna API möjliggör selektiv uppdatering av pool-egenskaper på endast förvaltningsnivå och förmågan att uppdatera andra egenskaper som annars skulle vara oföränderliga via datanivå-API:er.

Viktigt

Du måste använda API-version 2024-07-01 eller nyare av Batch Management Plane API för att uppdatera poolens egenskaper som beskrivs i det här avsnittet.

Eftersom denna operation är en PATCH uppdateras endast poolens egenskaper som anges i förfrågan. Om egenskaper inte specificeras som en del av begäran, förblir de befintliga värdena oförändrade.

Vissa egenskaper kan bara uppdateras när poolen inte har några aktiva noder i den eller där det totala antalet beräkningsnoder i poolen är noll. De egenskaper som inte kräver att poolen ska ha storleken noll för att den nya värdet ska träda i kraft är:

  • applikationspaket
  • certifikat
  • metadata
  • skalinställningar
  • startaUppgift

Om det finns aktiva noder när poolen uppdateras med dessa egenskaper kan det krävas en omstart av aktiva beräkningsnoder för att ändringarna ska träda i kraft. För mer information, se dokumentationen för varje enskild poolfastighet.

Alla andra uppdaterbara pool-egenskaper kräver att poolen är storlek noll noder för att accepteras som en del av uppdateringsbegäran.

Du kan även använda Pool - skapa-API för att uppdatera dessa utvalda egenskaper, men eftersom operationen är en PUT, ersätter begäran alla befintliga egenskaper helt. Därför tas varje egenskap som inte är specificerad i begäran bort eller ställs in med det associerade standardvärdet.

Exempel: Uppdatera specifikationen för VM-avbildning

I följande exempel visas hur du uppdaterar en VM-avbildningskonfiguration i en pool via hanteringsplanens C# SDK:

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}");
}

Exempel: Uppdatera VM-storlek och målnodens kommunikationsläge

Följande exempel visar hur man uppdaterar storleken på en pool-VM-bild och att kommunikationsläget för målnoden förenklas via REST-API.

PATCH https://management.azure.com/subscriptions/<subscriptionid>/resourceGroups/<resourcegroupName>/providers/Microsoft.Batch/batchAccounts/<batchaccountname>/pools/<poolname>?api-version=2024-07-01

Begärans innehåll

{
    "type": "Microsoft.Batch/batchAccounts/pools",
    "parameters": {
        "properties": {
            "vmSize": "standard_d32ads_v5",
            "targetNodeCommunicationMode": "simplified"
        }
    }
}

Datalager: Pool - Ändra eller Uppdatera Egenskaper

Dataplanet erbjuder möjligheten att antingen lappa eller uppdatera valda pool-egenskaper. Det tillgängliga API:et är API:et Pool – Uppdatera egenskaper som en del av Batch Data Plane API eller SDK.

Update Properties API tillåter selektiv uppdatering av poolens egenskaper enligt specifikationen i dokumentationen. Den här begäran ersätter de befintliga egenskaperna fullständigt. Därför tas alla egenskaper som inte anges i begäran bort.

För att ändringarna ska träda i kraft för följande egenskaper måste beräkningsnoderna startas om.

  • applicationPackageReferences
  • certificateReferences
  • startaUppgift

Poolen måste ändras till noll aktiva noder för uppdateringar av egenskapen targetNodeCommunicationMode .

FAQs

  • Behöver jag utföra andra åtgärder när jag har uppdaterat poolegenskaperna medan poolen har aktiva noder?

Ja, för pool-egenskaper som kan uppdateras med aktiva noder, finns det vissa egenskaper som kräver att beräkningsnoder startas om. Alternativt kan poolen skalas ner till noll noder för att återspegla de ändrade egenskaperna.

  • Kan jag ändra samlingen för hanterade identiteter i poolen medan poolen har aktiva noder?

Ja, men det borde du inte. Batch förbjuder inte mutation av samlingen med aktiva noder, men vi rekommenderar att du undviker att göra det eftersom det leder till inkonsekvens i identitetssamlingen om poolen skalar ut. Vi rekommenderar att du endast uppdaterar den här egenskapen när poolen är noll. För mer information, se artikeln Konfigurera hanterade identiteter.

Nästa steg