Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 del grupo, aunque no todas, pueden modificarse 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 pool 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 del 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 pool. 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 cuando 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
- certificados
- metadatos
- 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 del grupo actualizables requieren que el grupo tenga un tamaño de cero nodos para que se acepten como parte de la solicitud de actualización.
Por ejemplo, los cambios en vmSize, deploymentConfiguration, diskEncryptionConfiguration o securityProfile requieren que el grupo se encuentre en el estado de asignación Steady, sin nodos dedicados ni nodos Spot o de baja prioridad. Cuando redimensionas el pool tras la actualización, Batch crea un nuevo despliegue de cómputo subyacente usando la configuración actualizada.
También puedes utilizar la API Pool - Create para actualizar estas propiedades específicas, pero, dado que la operación es de tipo PUT, la solicitud sustituye 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: Actualización de las especificaciones de la imagen de la máquina virtual
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:
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 la máquina virtual de un grupo y el modo de comunicación del nodo de destino para simplificarlo mediante la API REST:
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
{
"type": "Microsoft.Batch/batchAccounts/pools",
"parameters": {
"properties": {
"vmSize": "standard_d32ads_v5",
"targetNodeCommunicationMode": "simplified"
}
}
}
Ejemplo: migrar de Azure Disk Encryption a cifrado en el host
Azure Disk Encryption para grupos de Batch se retira el 15 de septiembre de 2028.
Si un pool puede usar Azure Disk Encryption para el cifrado de disco temporal, redimensiona el pool a cero nodos y espera a que su estado de asignación pase a ser Steady. Luego utiliza la versión 2024-07-01 de la API o posterior para seleccionar un tamaño de máquina virtual compatible, si es necesario, y fijar securityProfile.encryptionAtHost en true.
Tras la actualización, redimensiona el pool hasta el número de nodos objetivo requeridos. Batch crea un nuevo despliegue de cómputo subyacente con el cifrado en el host habilitado. Para el procedimiento completo de migración y un ejemplo de solicitud, véase Migrar un pool existente a cifrado en el host.
Plano de datos: Grupo - Aplicar parches o actualizar propiedades
El plano de datos ofrece la posibilidad de aplicar parches o actualizar determinadas propiedades del grupo. La API disponible es la API Pool - Update Properties como parte de la Batch Data Plane API o del SDK.
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
Para actualizar la propiedad targetNodeCommunicationMode, es necesario reducir el tamaño del grupo a cero nodos activos.
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 del pool que pueden actualizarse con nodos activos, hay propiedades selectas que requieren que se reinicien los nodos de cálculo. Como alternativa, el grupo se puede reducir a cero nodos para reflejar las propiedades modificadas.
- ¿Puedo modificar la colección de identidades administradas en el pool mientras el pool 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.
Siguientes pasos
- Obtenga más información sobre las API y herramientas de Batch disponibles.
- Obtenga información sobre cómo comprobar si hay errores en los grupos y nodos.