Leer en inglés

Compartir a través de


Actualización de las propiedades del grupo de Batch

Al crear un grupo de Azure Batch, se especifican determinadas propiedades que definen la configuración del grupo. Algunos ejemplos incluyen especificar el tamaño de VM, la imagen de VM que se va a usar, la configuración de red virtual y la configuración de cifrado. Sin embargo, es posible que tenga que actualizar las propiedades del grupo a medida que su carga de trabajo evolucione con el tiempo o si una imagen de VM llega al final de su vida útil.

Algunas de estas propiedades de la piscina, aunque no todas, pueden revisarse o actualizarse para adaptarse a estas situaciones. En este artículo se proporciona información sobre las propiedades del grupo actualizables, los comportamientos esperados para las actualizaciones de propiedades del grupo y ejemplos.

Sugerencia

Algunas propiedades del grupo solo se pueden actualizar mediante las API del plano de administración de Batch o los SDK mediante la autenticación de Entra. Deberá instalar o utilizar la API o el SDK adecuados para que estas operaciones estén disponibles.

Propiedades de grupo actualizables

Batch proporciona varios métodos para actualizar las propiedades de un grupo. La selección de la API que se va a utilizar determina el conjunto de propiedades del grupo que se pueden actualizar, así como el comportamiento de la actualización.

Nota

Si desea actualizar las propiedades del grupo que no forman parte de las siguientes API de actualización o revisión, debe volver a crear el grupo para reflejar el estado deseado.

Plano de administración: Grupo- Actualización

La ruta recomendada para actualizar las propiedades del grupo es utilizar la API de Pool - Update que forma parte de la API o SDK del plano de administración de Batch. Esta API proporciona la manera más completa y flexible de actualizar las propiedades del grupo. El uso de esta API permite la actualización selectiva de las propiedades del grupo del plano de administración y la posibilidad de actualizar otras propiedades que, de otro modo, serían inmutables a través de las API del plano de datos.

Importante

Debe usar la versión 2024-07-01 o posterior de la API del plano de administración de Batch para actualizar las propiedades del grupo como se describe en esta sección.

Dado que esta operación es un PATCH, solo se actualizan las propiedades del grupo especificadas en la solicitud. Si no se especifican propiedades como parte de la solicitud, los valores existentes no se modifican.

Algunas propiedades solo se pueden actualizar cuando el grupo no tiene nodos activos en él o donde el número total de nodos de proceso del grupo es cero. Las propiedades que no requieren que el grupo tenga un tamaño cero para que el nuevo valor entre en vigor son:

  • applicationPackages
  • certificates
  • metadata
  • scaleSettings
  • startTask

Si hay nodos activos cuando el grupo se actualiza con estas propiedades, es posible que sea necesario reiniciar los nodos de proceso activos para que los cambios entren en vigor. Para obtener más información, consulte la documentación de cada propiedad de grupo individual.

Todas las demás propiedades de grupo actualizables requieren que el grupo sea de tamaño cero nodos para ser aceptado como parte de la solicitud de actualización.

También puede usar API de Pool - Create para actualizar estas propiedades de selección, pero dado que la operación es un PUT, la solicitud reemplaza por completo todas las propiedades existentes. Por lo tanto, cualquier propiedad que no se especifique en la solicitud se quita o establece con el valor predeterminado asociado.

Ejemplo: actualizar especificación de Imagen VM

El siguiente ejemplo muestra cómo actualizar la configuración de la imagen de un grupo de VM a través del SDK C# del plano de administración:

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

Ejemplo: actualizar el tamaño de VM y el modo de comunicación del nodo de destino

El siguiente ejemplo muestra cómo actualizar el tamaño de la imagen de un grupo de VM y el modo de comunicación del nodo de destino para simplificarlo a través de la API de REST:

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

Cuerpo de la solicitud

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

Plano de datos: Grupo - Revisar o actualizar propiedades

El plano de datos ofrece la posibilidad de revisar o actualizar determinadas propiedades del grupo. Las API disponibles son la API de Pool - Patch o la API de Propiedades Pool - Update como parte de la API o SDK de plano de datos de Batch.

La API de Revisión permite aplicar revisiones a las propiedades del grupo de selección, tal como se especifica en la documentación, como startTask. Dado que esta operación es un PATCH, solo se actualizan las propiedades del grupo especificadas en la solicitud. Si no se especifican propiedades como parte de la solicitud, los valores existentes no se modifican.

La API de actualización de propiedades permite la actualización selectiva de las propiedades del grupo, tal y como se especifica en la documentación. Esta solicitud reemplaza completamente las propiedades existentes, por lo que se quita cualquier propiedad que no se especifique en la solicitud.

Los nodos de proceso deben reiniciarse para que los cambios surtan efecto en las siguientes propiedades:

  • applicationPackageReferences
  • certificateReferences
  • startTask

El grupo debe cambiar el tamaño a cero nodos activos para las actualizaciones de la propiedad targetNodeCommunicationMode.

Preguntas más frecuentes

  • ¿Es necesario realizar otras operaciones después de actualizar las propiedades del grupo mientras el grupo tiene nodos activos?

Sí, para las propiedades de grupo que pueden actualizarse con nodos activos, hay propiedades selectas que requieren que se reinicien los nodos de proceso. Como alternativa, el grupo se puede reducir verticalmente a cero nodos para reflejar las propiedades modificadas.

  • ¿Puedo modificar la colección de identidades administradas en el grupo mientras el grupo tiene nodos activos?

Sí, pero no deberías. Aunque Batch no prohíbe la mutación de la colección con nodos activos, se recomienda evitar hacerlo, ya que esto conduce a una incoherencia en la colección de identidades si el grupo se escala horizontalmente. Se recomienda actualizar solo esta propiedad cuando el grupo tiene el tamaño cero. Para obtener más información, consulte el artículo Configuración de identidades administradas.

Pasos siguientes