batchDeleteClusterNodes method
Deletes specific nodes within a SageMaker HyperPod cluster.
BatchDeleteClusterNodes accepts a cluster name and a list of
node IDs.
- To safeguard your work, back up your data to Amazon S3 or an FSx for Lustre file system before invoking the API on a worker node group. This will help prevent any potential data loss from the instance root volume. For more information about backup, see Use the backup script provided by SageMaker HyperPod.
- If you want to invoke this API on an existing cluster, you'll first need to patch the cluster by running the UpdateClusterSoftware API. For more information about patching a cluster, see Update the SageMaker HyperPod platform software of a cluster.
May throw ResourceNotFound.
Parameter clusterName :
The name of the SageMaker HyperPod cluster from which to delete the
specified nodes.
Parameter nodeIds :
A list of node IDs to be deleted from the specified cluster.
- For SageMaker HyperPod clusters using the Slurm workload manager, you cannot remove instances that are configured as Slurm controller nodes.
- If you need to delete more than 99 instances, contact Support for assistance.
Parameter nodeLogicalIds :
A list of NodeLogicalIds identifying the nodes to be deleted.
You can specify up to 50 NodeLogicalIds. You must specify
either NodeLogicalIds, InstanceIds, or both,
with a combined maximum of 50 identifiers.
Implementation
Future<BatchDeleteClusterNodesResponse> batchDeleteClusterNodes({
required String clusterName,
List<String>? nodeIds,
List<String>? nodeLogicalIds,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'SageMaker.BatchDeleteClusterNodes'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'ClusterName': clusterName,
if (nodeIds != null) 'NodeIds': nodeIds,
if (nodeLogicalIds != null) 'NodeLogicalIds': nodeLogicalIds,
},
);
return BatchDeleteClusterNodesResponse.fromJson(jsonResponse.body);
}