Class: AWSCDK::Sagemaker::CfnCluster::ClusterInstanceGroupProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
sagemaker/cfn_cluster.rb

Overview

The configuration information of the instance group within the HyperPod cluster.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(execution_role:, instance_count:, instance_group_name:, capacity_requirements: nil, current_count: nil, image_id: nil, instance_requirements: nil, instance_storage_configs: nil, instance_type: nil, kubernetes_config: nil, life_cycle_config: nil, min_instance_count: nil, network_interface: nil, on_start_deep_health_checks: nil, override_vpc_config: nil, scheduled_update_config: nil, slurm_config: nil, threads_per_core: nil, training_plan_arn: nil) ⇒ ClusterInstanceGroupProperty

Returns a new instance of ClusterInstanceGroupProperty.

Parameters:



1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
# File 'sagemaker/cfn_cluster.rb', line 1043

def initialize(execution_role:, instance_count:, instance_group_name:, capacity_requirements: nil, current_count: nil, image_id: nil, instance_requirements: nil, instance_storage_configs: nil, instance_type: nil, kubernetes_config: nil, life_cycle_config: nil, min_instance_count: nil, network_interface: nil, on_start_deep_health_checks: nil, override_vpc_config: nil, scheduled_update_config: nil, slurm_config: nil, threads_per_core: nil, training_plan_arn: nil)
  @execution_role = execution_role
  Jsii::Type.check_type(@execution_role, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "executionRole")
  @instance_count = instance_count
  Jsii::Type.check_type(@instance_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "instanceCount")
  @instance_group_name = instance_group_name
  Jsii::Type.check_type(@instance_group_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceGroupName")
  @capacity_requirements = capacity_requirements.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ClusterCapacityRequirementsProperty.new(**capacity_requirements.transform_keys(&:to_sym)) : capacity_requirements
  Jsii::Type.check_type(@capacity_requirements, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5DbHVzdGVyQ2FwYWNpdHlSZXF1aXJlbWVudHNQcm9wZXJ0eSJ9XX19")), "capacityRequirements") unless @capacity_requirements.nil?
  @current_count = current_count
  Jsii::Type.check_type(@current_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "currentCount") unless @current_count.nil?
  @image_id = image_id
  Jsii::Type.check_type(@image_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "imageId") unless @image_id.nil?
  @instance_requirements = instance_requirements.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::InstanceRequirementsProperty.new(**instance_requirements.transform_keys(&:to_sym)) : instance_requirements
  Jsii::Type.check_type(@instance_requirements, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5JbnN0YW5jZVJlcXVpcmVtZW50c1Byb3BlcnR5In1dfX0=")), "instanceRequirements") unless @instance_requirements.nil?
  @instance_storage_configs = instance_storage_configs
  Jsii::Type.check_type(@instance_storage_configs, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc2FnZW1ha2VyLkNmbkNsdXN0ZXIuQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ1Byb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "instanceStorageConfigs") unless @instance_storage_configs.nil?
  @instance_type = instance_type
  Jsii::Type.check_type(@instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "instanceType") unless @instance_type.nil?
  @kubernetes_config = kubernetes_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ClusterKubernetesConfigProperty.new(**kubernetes_config.transform_keys(&:to_sym)) : kubernetes_config
  Jsii::Type.check_type(@kubernetes_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5DbHVzdGVyS3ViZXJuZXRlc0NvbmZpZ1Byb3BlcnR5In1dfX0=")), "kubernetesConfig") unless @kubernetes_config.nil?
  @life_cycle_config = life_cycle_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ClusterLifeCycleConfigProperty.new(**life_cycle_config.transform_keys(&:to_sym)) : life_cycle_config
  Jsii::Type.check_type(@life_cycle_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5DbHVzdGVyTGlmZUN5Y2xlQ29uZmlnUHJvcGVydHkifV19fQ==")), "lifeCycleConfig") unless @life_cycle_config.nil?
  @min_instance_count = min_instance_count
  Jsii::Type.check_type(@min_instance_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "minInstanceCount") unless @min_instance_count.nil?
  @network_interface = network_interface.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ClusterNetworkInterfaceProperty.new(**network_interface.transform_keys(&:to_sym)) : network_interface
  Jsii::Type.check_type(@network_interface, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5DbHVzdGVyTmV0d29ya0ludGVyZmFjZVByb3BlcnR5In1dfX0=")), "networkInterface") unless @network_interface.nil?
  @on_start_deep_health_checks = on_start_deep_health_checks
  Jsii::Type.check_type(@on_start_deep_health_checks, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "onStartDeepHealthChecks") unless @on_start_deep_health_checks.nil?
  @override_vpc_config = override_vpc_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::VPCConfigProperty.new(**override_vpc_config.transform_keys(&:to_sym)) : override_vpc_config
  Jsii::Type.check_type(@override_vpc_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5WcGNDb25maWdQcm9wZXJ0eSJ9XX19")), "overrideVpcConfig") unless @override_vpc_config.nil?
  @scheduled_update_config = scheduled_update_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ScheduledUpdateConfigProperty.new(**scheduled_update_config.transform_keys(&:to_sym)) : scheduled_update_config
  Jsii::Type.check_type(@scheduled_update_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5TY2hlZHVsZWRVcGRhdGVDb25maWdQcm9wZXJ0eSJ9XX19")), "scheduledUpdateConfig") unless @scheduled_update_config.nil?
  @slurm_config = slurm_config.is_a?(Hash) ? ::AWSCDK::Sagemaker::CfnCluster::ClusterSlurmConfigProperty.new(**slurm_config.transform_keys(&:to_sym)) : slurm_config
  Jsii::Type.check_type(@slurm_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zYWdlbWFrZXIuQ2ZuQ2x1c3Rlci5DbHVzdGVyU2x1cm1Db25maWdQcm9wZXJ0eSJ9XX19")), "slurmConfig") unless @slurm_config.nil?
  @threads_per_core = threads_per_core
  Jsii::Type.check_type(@threads_per_core, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "threadsPerCore") unless @threads_per_core.nil?
  @training_plan_arn = training_plan_arn
  Jsii::Type.check_type(@training_plan_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "trainingPlanArn") unless @training_plan_arn.nil?
end

Instance Attribute Details

#capacity_requirementsAWSCDK::IResolvable, ... (readonly)

Specifies the capacity requirements configuration for an instance group.



1103
1104
1105
# File 'sagemaker/cfn_cluster.rb', line 1103

def capacity_requirements
  @capacity_requirements
end

#current_countNumeric? (readonly)

The number of instances that are currently in the instance group of a SageMaker HyperPod cluster.



1108
1109
1110
# File 'sagemaker/cfn_cluster.rb', line 1108

def current_count
  @current_count
end

#execution_roleString (readonly)

The execution role for the instance group to assume.



1088
1089
1090
# File 'sagemaker/cfn_cluster.rb', line 1088

def execution_role
  @execution_role
end

#image_idString? (readonly)

AMI Id to be used for launching EC2 instances - HyperPodPublicAmiId or CustomAmiId.



1113
1114
1115
# File 'sagemaker/cfn_cluster.rb', line 1113

def image_id
  @image_id
end

#instance_countNumeric (readonly)

The number of instances in an instance group of the SageMaker HyperPod cluster.



1093
1094
1095
# File 'sagemaker/cfn_cluster.rb', line 1093

def instance_count
  @instance_count
end

#instance_group_nameString (readonly)

The name of the instance group of a SageMaker HyperPod cluster.



1098
1099
1100
# File 'sagemaker/cfn_cluster.rb', line 1098

def instance_group_name
  @instance_group_name
end

#instance_requirementsAWSCDK::IResolvable, ... (readonly)

The instance requirements for the instance group.

Specifies a list of instance types that can be used.



1120
1121
1122
# File 'sagemaker/cfn_cluster.rb', line 1120

def instance_requirements
  @instance_requirements
end

#instance_storage_configsAWSCDK::IResolvable, ... (readonly)

The configurations of additional storage specified to the instance group where the instance (node) is launched.



1125
1126
1127
# File 'sagemaker/cfn_cluster.rb', line 1125

def instance_storage_configs
  @instance_storage_configs
end

#instance_typeString? (readonly)

The instance type of the instance group of a SageMaker HyperPod cluster.



1130
1131
1132
# File 'sagemaker/cfn_cluster.rb', line 1130

def instance_type
  @instance_type
end

#kubernetes_configAWSCDK::IResolvable, ... (readonly)

Kubernetes configuration for cluster nodes including labels and taints.



1135
1136
1137
# File 'sagemaker/cfn_cluster.rb', line 1135

def kubernetes_config
  @kubernetes_config
end

#life_cycle_configAWSCDK::IResolvable, ... (readonly)

The lifecycle configuration for a SageMaker HyperPod cluster.



1140
1141
1142
# File 'sagemaker/cfn_cluster.rb', line 1140

def life_cycle_config
  @life_cycle_config
end

#min_instance_countNumeric? (readonly)

The minimum number of instances required for the instance group to be InService.

MinInstanceCount must be less than or equal to InstanceCount.



1147
1148
1149
# File 'sagemaker/cfn_cluster.rb', line 1147

def min_instance_count
  @min_instance_count
end

#network_interfaceAWSCDK::IResolvable, ... (readonly)

Specifies the network interface configuration for the instance group.



1152
1153
1154
# File 'sagemaker/cfn_cluster.rb', line 1152

def network_interface
  @network_interface
end

#on_start_deep_health_checksArray<String>? (readonly)

A flag indicating whether deep health checks should be performed when the HyperPod cluster instance group is created or updated.

Deep health checks are comprehensive, invasive tests that validate the health of the underlying hardware and infrastructure components.



1159
1160
1161
# File 'sagemaker/cfn_cluster.rb', line 1159

def on_start_deep_health_checks
  @on_start_deep_health_checks
end

#override_vpc_configAWSCDK::IResolvable, ... (readonly)

The customized Amazon VPC configuration at the instance group level that overrides the default Amazon VPC configuration of the SageMaker HyperPod cluster.



1164
1165
1166
# File 'sagemaker/cfn_cluster.rb', line 1164

def override_vpc_config
  @override_vpc_config
end

#scheduled_update_configAWSCDK::IResolvable, ... (readonly)

The configuration object of the schedule that SageMaker follows when updating the AMI.



1169
1170
1171
# File 'sagemaker/cfn_cluster.rb', line 1169

def scheduled_update_config
  @scheduled_update_config
end

#slurm_configAWSCDK::IResolvable, ... (readonly)

Slurm configuration for the instance group.



1174
1175
1176
# File 'sagemaker/cfn_cluster.rb', line 1174

def slurm_config
  @slurm_config
end

#threads_per_coreNumeric? (readonly)

The number of threads per CPU core you specified under CreateCluster .



1179
1180
1181
# File 'sagemaker/cfn_cluster.rb', line 1179

def threads_per_core
  @threads_per_core
end

#training_plan_arnString? (readonly)

The Amazon Resource Name (ARN) of the training plan to use for this cluster instance group.

For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see CreateTrainingPlan.



1186
1187
1188
# File 'sagemaker/cfn_cluster.rb', line 1186

def training_plan_arn
  @training_plan_arn
end

Class Method Details

.jsii_propertiesObject



1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
# File 'sagemaker/cfn_cluster.rb', line 1188

def self.jsii_properties
  {
    :execution_role => "executionRole",
    :instance_count => "instanceCount",
    :instance_group_name => "instanceGroupName",
    :capacity_requirements => "capacityRequirements",
    :current_count => "currentCount",
    :image_id => "imageId",
    :instance_requirements => "instanceRequirements",
    :instance_storage_configs => "instanceStorageConfigs",
    :instance_type => "instanceType",
    :kubernetes_config => "kubernetesConfig",
    :life_cycle_config => "lifeCycleConfig",
    :min_instance_count => "minInstanceCount",
    :network_interface => "networkInterface",
    :on_start_deep_health_checks => "onStartDeepHealthChecks",
    :override_vpc_config => "overrideVpcConfig",
    :scheduled_update_config => "scheduledUpdateConfig",
    :slurm_config => "slurmConfig",
    :threads_per_core => "threadsPerCore",
    :training_plan_arn => "trainingPlanArn",
  }
end

Instance Method Details

#to_jsiiObject



1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
# File 'sagemaker/cfn_cluster.rb', line 1212

def to_jsii
  result = {}
  result.merge!({
    "executionRole" => @execution_role,
    "instanceCount" => @instance_count,
    "instanceGroupName" => @instance_group_name,
    "capacityRequirements" => @capacity_requirements,
    "currentCount" => @current_count,
    "imageId" => @image_id,
    "instanceRequirements" => @instance_requirements,
    "instanceStorageConfigs" => @instance_storage_configs,
    "instanceType" => @instance_type,
    "kubernetesConfig" => @kubernetes_config,
    "lifeCycleConfig" => @life_cycle_config,
    "minInstanceCount" => @min_instance_count,
    "networkInterface" => @network_interface,
    "onStartDeepHealthChecks" => @on_start_deep_health_checks,
    "overrideVpcConfig" => @override_vpc_config,
    "scheduledUpdateConfig" => @scheduled_update_config,
    "slurmConfig" => @slurm_config,
    "threadsPerCore" => @threads_per_core,
    "trainingPlanArn" => @training_plan_arn,
  })
  result.compact
end