UpdateComputeNodeGroup
Updates a compute node group. You can update many of the fields related to your compute node group including the configurations for networking, compute nodes, and settings specific to your scheduler (such as Slurm).
Request Syntax
{
"amiId": "string
",
"clientToken": "string
",
"clusterIdentifier": "string
",
"computeNodeGroupIdentifier": "string
",
"customLaunchTemplate": {
"id": "string
",
"version": "string
"
},
"iamInstanceProfileArn": "string
",
"purchaseOption": "string
",
"scalingConfiguration": {
"maxInstanceCount": number
,
"minInstanceCount": number
},
"slurmConfiguration": {
"slurmCustomSettings": [
{
"parameterName": "string
",
"parameterValue": "string
"
}
]
},
"spotOptions": {
"allocationStrategy": "string
"
},
"subnetIds": [ "string
" ]
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- amiId
-
The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances. If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
Type: String
Pattern:
ami-[a-z0-9]+
Required: No
- clientToken
-
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you don't specify a client token, the AWS CLI and SDK automatically generate 1 for you.
Type: String
Length Constraints: Minimum length of 8. Maximum length of 100.
Required: No
- clusterIdentifier
-
The name or ID of the cluster of the compute node group.
Type: String
Pattern:
(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,40})
Required: Yes
- computeNodeGroupIdentifier
-
The name or ID of the compute node group.
Type: String
Pattern:
(pcs_[a-zA-Z0-9]+|[A-Za-z][A-Za-z0-9-]{1,25})
Required: Yes
- customLaunchTemplate
-
An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
Type: CustomLaunchTemplate object
Required: No
- iamInstanceProfileArn
-
The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have the
pcs:RegisterComputeNodeGroupInstance
permission. The resource identifier of the ARN must start withAWSPCS
or it must have/aws-pcs/
in its path.Examples
-
arn:aws:iam::111122223333:instance-profile/AWSPCS-example-role-1
-
arn:aws:iam::111122223333:instance-profile/aws-pcs/example-role-2
Type: String
Pattern:
arn:aws([a-zA-Z-]{0,10})?:iam::[0-9]{12}:instance-profile/.{1,128}
Required: No
-
- purchaseOption
-
Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand and Spot instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
Type: String
Valid Values:
ONDEMAND | SPOT
Required: No
- scalingConfiguration
-
Specifies the boundaries of the compute node group auto scaling.
Type: ScalingConfigurationRequest object
Required: No
- slurmConfiguration
-
Additional options related to the Slurm scheduler.
Type: UpdateComputeNodeGroupSlurmConfigurationRequest object
Required: No
- spotOptions
-
Additional configuration when you specify
SPOT
as thepurchaseOption
for theCreateComputeNodeGroup
API action.Type: SpotOptions object
Required: No
- subnetIds
-
The list of subnet IDs where the compute node group provisions instances. The subnets must be in the same VPC as the cluster.
Type: Array of strings
Required: No
Response Syntax
{
"computeNodeGroup": {
"amiId": "string",
"arn": "string",
"clusterId": "string",
"createdAt": "string",
"customLaunchTemplate": {
"id": "string",
"version": "string"
},
"errorInfo": [
{
"code": "string",
"message": "string"
}
],
"iamInstanceProfileArn": "string",
"id": "string",
"instanceConfigs": [
{
"instanceType": "string"
}
],
"modifiedAt": "string",
"name": "string",
"purchaseOption": "string",
"scalingConfiguration": {
"maxInstanceCount": number,
"minInstanceCount": number
},
"slurmConfiguration": {
"slurmCustomSettings": [
{
"parameterName": "string",
"parameterValue": "string"
}
]
},
"spotOptions": {
"allocationStrategy": "string"
},
"status": "string",
"subnetIds": [ "string" ]
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- computeNodeGroup
-
A compute node group associated with a cluster.
Type: ComputeNodeGroup object
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You don't have permission to perform the action.
Examples
-
The launch template instance profile doesn't pass
iam:PassRole
verification. -
There is a mismatch between the account ID and cluster ID.
-
The cluster ID doesn't exist.
-
The EC2 instance isn't present.
HTTP Status Code: 400
-
- ConflictException
-
Your request has conflicting operations. This can occur if you're trying to perform more than 1 operation on the same resource at the same time.
Examples
-
A cluster with the same name already exists.
-
A cluster isn't in
ACTIVE
status. -
A cluster to delete is in an unstable state. For example, because it still has
ACTIVE
node groups or queues. -
A queue already exists in a cluster.
HTTP Status Code: 400
-
- InternalServerException
-
AWS PCS can't process your request right now. Try again later.
HTTP Status Code: 500
- ResourceNotFoundException
-
The requested resource can't be found. The cluster, node group, or queue you're attempting to get, update, list, or delete doesn't exist.
Examples
HTTP Status Code: 400
- ServiceQuotaExceededException
-
You exceeded your service quota. Service quotas, also referred to as limits, are the maximum number of service resources or operations for your AWS account. To learn how to increase your service quota, see Requesting a quota increase in the Service Quotas User Guide
Examples
-
The max number of clusters or queues has been reached for the account.
-
The max number of compute node groups has been reached for the associated cluster.
-
The total of
maxInstances
across all compute node groups has been reached for associated cluster.
HTTP Status Code: 400
-
- ThrottlingException
-
Your request exceeded a request rate quota. Check the resource's request rate quota and try again.
HTTP Status Code: 400
- ValidationException
-
The request isn't valid.
Examples
-
Your request contains malformed JSON or unsupported characters.
-
The scheduler version isn't supported.
-
There are networking related errors, such as network validation failure.
-
AMI type is
CUSTOM
and the launch template doesn't define the AMI ID, or the AMI type is AL2 and the launch template defines the AMI.
HTTP Status Code: 400
-
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: