Class: AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstancesConfigProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
step_functions_tasks/emr_create_cluster.rb

Overview

A specification of the number and type of Amazon EC2 instances.

See the RunJobFlow API for complete documentation on input parameters

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(additional_master_security_groups: nil, additional_slave_security_groups: nil, ec2_key_name: nil, ec2_subnet_id: nil, ec2_subnet_ids: nil, emr_managed_master_security_group: nil, emr_managed_slave_security_group: nil, hadoop_version: nil, instance_count: nil, instance_fleets: nil, instance_groups: nil, master_instance_type: nil, placement: nil, service_access_security_group: nil, slave_instance_type: nil, termination_protected: nil) ⇒ InstancesConfigProperty

Returns a new instance of InstancesConfigProperty.

Parameters:

  • additional_master_security_groups (Array<String>, nil) (defaults to: nil)

    A list of additional Amazon EC2 security group IDs for the master node.

  • additional_slave_security_groups (Array<String>, nil) (defaults to: nil)

    A list of additional Amazon EC2 security group IDs for the core and task nodes.

  • ec2_key_name (String, nil) (defaults to: nil)

    The name of the EC2 key pair that can be used to ssh to the master node as the user called "hadoop.".

  • ec2_subnet_id (String, nil) (defaults to: nil)

    Applies to clusters that use the uniform instance group configuration.

  • ec2_subnet_ids (Array<String>, nil) (defaults to: nil)

    Applies to clusters that use the instance fleet configuration.

  • emr_managed_master_security_group (String, nil) (defaults to: nil)

    The identifier of the Amazon EC2 security group for the master node.

  • emr_managed_slave_security_group (String, nil) (defaults to: nil)

    The identifier of the Amazon EC2 security group for the core and task nodes.

  • hadoop_version (String, nil) (defaults to: nil)

    Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster.

  • instance_count (Numeric, nil) (defaults to: nil)

    The number of EC2 instances in the cluster.

  • instance_fleets (Array<AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceFleetConfigProperty>, nil) (defaults to: nil)

    Describes the EC2 instances and instance configurations for clusters that use the instance fleet configuration.

  • instance_groups (Array<AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceGroupConfigProperty>, nil) (defaults to: nil)

    Configuration for the instance groups in a cluster.

  • master_instance_type (String, nil) (defaults to: nil)

    The EC2 instance type of the master node.

  • placement (AWSCDK::StepFunctionsTasks::EMRCreateCluster::PlacementTypeProperty, nil) (defaults to: nil)

    The Availability Zone in which the cluster runs.

  • service_access_security_group (String, nil) (defaults to: nil)

    The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.

  • slave_instance_type (String, nil) (defaults to: nil)

    The EC2 instance type of the core and task nodes.

  • termination_protected (Boolean, nil) (defaults to: nil)

    Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job-flow error.



1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
# File 'step_functions_tasks/emr_create_cluster.rb', line 1764

def initialize(additional_master_security_groups: nil, additional_slave_security_groups: nil, ec2_key_name: nil, ec2_subnet_id: nil, ec2_subnet_ids: nil, emr_managed_master_security_group: nil, emr_managed_slave_security_group: nil, hadoop_version: nil, instance_count: nil, instance_fleets: nil, instance_groups: nil, master_instance_type: nil, placement: nil, service_access_security_group: nil, slave_instance_type: nil, termination_protected: nil)
  @additional_master_security_groups = additional_master_security_groups
  Jsii::Type.check_type(@additional_master_security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "additionalMasterSecurityGroups") unless @additional_master_security_groups.nil?
  @additional_slave_security_groups = additional_slave_security_groups
  Jsii::Type.check_type(@additional_slave_security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "additionalSlaveSecurityGroups") unless @additional_slave_security_groups.nil?
  @ec2_key_name = ec2_key_name
  Jsii::Type.check_type(@ec2_key_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ec2KeyName") unless @ec2_key_name.nil?
  @ec2_subnet_id = ec2_subnet_id
  Jsii::Type.check_type(@ec2_subnet_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ec2SubnetId") unless @ec2_subnet_id.nil?
  @ec2_subnet_ids = ec2_subnet_ids
  Jsii::Type.check_type(@ec2_subnet_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "ec2SubnetIds") unless @ec2_subnet_ids.nil?
  @emr_managed_master_security_group = emr_managed_master_security_group
  Jsii::Type.check_type(@emr_managed_master_security_group, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "emrManagedMasterSecurityGroup") unless @emr_managed_master_security_group.nil?
  @emr_managed_slave_security_group = emr_managed_slave_security_group
  Jsii::Type.check_type(@emr_managed_slave_security_group, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "emrManagedSlaveSecurityGroup") unless @emr_managed_slave_security_group.nil?
  @hadoop_version = hadoop_version
  Jsii::Type.check_type(@hadoop_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "hadoopVersion") unless @hadoop_version.nil?
  @instance_count = instance_count
  Jsii::Type.check_type(@instance_count, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "instanceCount") unless @instance_count.nil?
  @instance_fleets = instance_fleets.is_a?(Array) ? instance_fleets.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceFleetConfigProperty.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : instance_fleets
  Jsii::Type.check_type(@instance_fleets, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zdGVwZnVuY3Rpb25zX3Rhc2tzLkVtckNyZWF0ZUNsdXN0ZXIuSW5zdGFuY2VGbGVldENvbmZpZ1Byb3BlcnR5In0sImtpbmQiOiJhcnJheSJ9fQ==")), "instanceFleets") unless @instance_fleets.nil?
  @instance_groups = instance_groups.is_a?(Array) ? instance_groups.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceGroupConfigProperty.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : instance_groups
  Jsii::Type.check_type(@instance_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zdGVwZnVuY3Rpb25zX3Rhc2tzLkVtckNyZWF0ZUNsdXN0ZXIuSW5zdGFuY2VHcm91cENvbmZpZ1Byb3BlcnR5In0sImtpbmQiOiJhcnJheSJ9fQ==")), "instanceGroups") unless @instance_groups.nil?
  @master_instance_type = master_instance_type
  Jsii::Type.check_type(@master_instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "masterInstanceType") unless @master_instance_type.nil?
  @placement = placement.is_a?(Hash) ? ::AWSCDK::StepFunctionsTasks::EMRCreateCluster::PlacementTypeProperty.new(**placement.transform_keys(&:to_sym)) : placement
  Jsii::Type.check_type(@placement, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc3RlcGZ1bmN0aW9uc190YXNrcy5FbXJDcmVhdGVDbHVzdGVyLlBsYWNlbWVudFR5cGVQcm9wZXJ0eSJ9")), "placement") unless @placement.nil?
  @service_access_security_group = service_access_security_group
  Jsii::Type.check_type(@service_access_security_group, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serviceAccessSecurityGroup") unless @service_access_security_group.nil?
  @slave_instance_type = slave_instance_type
  Jsii::Type.check_type(@slave_instance_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "slaveInstanceType") unless @slave_instance_type.nil?
  @termination_protected = termination_protected
  Jsii::Type.check_type(@termination_protected, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "terminationProtected") unless @termination_protected.nil?
end

Instance Attribute Details

#additional_master_security_groupsArray<String>? (readonly)

Note:

Default: - None

A list of additional Amazon EC2 security group IDs for the master node.

Returns:

  • (Array<String>, nil)


1803
1804
1805
# File 'step_functions_tasks/emr_create_cluster.rb', line 1803

def additional_master_security_groups
  @additional_master_security_groups
end

#additional_slave_security_groupsArray<String>? (readonly)

Note:

Default: - None

A list of additional Amazon EC2 security group IDs for the core and task nodes.

Returns:

  • (Array<String>, nil)


1808
1809
1810
# File 'step_functions_tasks/emr_create_cluster.rb', line 1808

def additional_slave_security_groups
  @additional_slave_security_groups
end

#ec2_key_nameString? (readonly)

Note:

Default: - None

The name of the EC2 key pair that can be used to ssh to the master node as the user called "hadoop.".

Returns:

  • (String, nil)


1813
1814
1815
# File 'step_functions_tasks/emr_create_cluster.rb', line 1813

def ec2_key_name
  @ec2_key_name
end

#ec2_subnet_idString? (readonly)

Note:

Default: EMR selected default

Applies to clusters that use the uniform instance group configuration.

To launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier of the Amazon VPC subnet where you want the cluster to launch.

Returns:

  • (String, nil)


1821
1822
1823
# File 'step_functions_tasks/emr_create_cluster.rb', line 1821

def ec2_subnet_id
  @ec2_subnet_id
end

#ec2_subnet_idsArray<String>? (readonly)

Note:

Default: EMR selected default

Applies to clusters that use the instance fleet configuration.

When multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in the optimal subnet.

Returns:

  • (Array<String>, nil)


1829
1830
1831
# File 'step_functions_tasks/emr_create_cluster.rb', line 1829

def ec2_subnet_ids
  @ec2_subnet_ids
end

#emr_managed_master_security_groupString? (readonly)

Note:

Default: - None

The identifier of the Amazon EC2 security group for the master node.

Returns:

  • (String, nil)


1834
1835
1836
# File 'step_functions_tasks/emr_create_cluster.rb', line 1834

def emr_managed_master_security_group
  @emr_managed_master_security_group
end

#emr_managed_slave_security_groupString? (readonly)

Note:

Default: - None

The identifier of the Amazon EC2 security group for the core and task nodes.

Returns:

  • (String, nil)


1839
1840
1841
# File 'step_functions_tasks/emr_create_cluster.rb', line 1839

def emr_managed_slave_security_group
  @emr_managed_slave_security_group
end

#hadoop_versionString? (readonly)

Note:

Default: - 0.18 if the AmiVersion parameter is not set. If AmiVersion is set, the version of Hadoop for that AMI version is used.

Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for the cluster.

Returns:

  • (String, nil)


1844
1845
1846
# File 'step_functions_tasks/emr_create_cluster.rb', line 1844

def hadoop_version
  @hadoop_version
end

#instance_countNumeric? (readonly)

Note:

Default: 0

The number of EC2 instances in the cluster.

Returns:

  • (Numeric, nil)


1849
1850
1851
# File 'step_functions_tasks/emr_create_cluster.rb', line 1849

def instance_count
  @instance_count
end

#instance_fleetsArray<AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceFleetConfigProperty>? (readonly)

Note:

Default: - None

Describes the EC2 instances and instance configurations for clusters that use the instance fleet configuration.

The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.



1856
1857
1858
# File 'step_functions_tasks/emr_create_cluster.rb', line 1856

def instance_fleets
  @instance_fleets
end

#instance_groupsArray<AWSCDK::StepFunctionsTasks::EMRCreateCluster::InstanceGroupConfigProperty>? (readonly)

Note:

Default: - None

Configuration for the instance groups in a cluster.



1861
1862
1863
# File 'step_functions_tasks/emr_create_cluster.rb', line 1861

def instance_groups
  @instance_groups
end

#master_instance_typeString? (readonly)

Note:

Default: - None

The EC2 instance type of the master node.

Returns:

  • (String, nil)


1866
1867
1868
# File 'step_functions_tasks/emr_create_cluster.rb', line 1866

def master_instance_type
  @master_instance_type
end

#placementAWSCDK::StepFunctionsTasks::EMRCreateCluster::PlacementTypeProperty? (readonly)

Note:

Default: - EMR selected default

The Availability Zone in which the cluster runs.



1871
1872
1873
# File 'step_functions_tasks/emr_create_cluster.rb', line 1871

def placement
  @placement
end

#service_access_security_groupString? (readonly)

Note:

Default: - None

The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.

Returns:

  • (String, nil)


1876
1877
1878
# File 'step_functions_tasks/emr_create_cluster.rb', line 1876

def service_access_security_group
  @service_access_security_group
end

#slave_instance_typeString? (readonly)

Note:

Default: - None

The EC2 instance type of the core and task nodes.

Returns:

  • (String, nil)


1881
1882
1883
# File 'step_functions_tasks/emr_create_cluster.rb', line 1881

def slave_instance_type
  @slave_instance_type
end

#termination_protectedBoolean? (readonly)

Note:

Default: false

Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job-flow error.

Returns:

  • (Boolean, nil)


1886
1887
1888
# File 'step_functions_tasks/emr_create_cluster.rb', line 1886

def termination_protected
  @termination_protected
end

Class Method Details

.jsii_propertiesObject



1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
# File 'step_functions_tasks/emr_create_cluster.rb', line 1888

def self.jsii_properties
  {
    :additional_master_security_groups => "additionalMasterSecurityGroups",
    :additional_slave_security_groups => "additionalSlaveSecurityGroups",
    :ec2_key_name => "ec2KeyName",
    :ec2_subnet_id => "ec2SubnetId",
    :ec2_subnet_ids => "ec2SubnetIds",
    :emr_managed_master_security_group => "emrManagedMasterSecurityGroup",
    :emr_managed_slave_security_group => "emrManagedSlaveSecurityGroup",
    :hadoop_version => "hadoopVersion",
    :instance_count => "instanceCount",
    :instance_fleets => "instanceFleets",
    :instance_groups => "instanceGroups",
    :master_instance_type => "masterInstanceType",
    :placement => "placement",
    :service_access_security_group => "serviceAccessSecurityGroup",
    :slave_instance_type => "slaveInstanceType",
    :termination_protected => "terminationProtected",
  }
end

Instance Method Details

#to_jsiiObject



1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
# File 'step_functions_tasks/emr_create_cluster.rb', line 1909

def to_jsii
  result = {}
  result.merge!({
    "additionalMasterSecurityGroups" => @additional_master_security_groups,
    "additionalSlaveSecurityGroups" => @additional_slave_security_groups,
    "ec2KeyName" => @ec2_key_name,
    "ec2SubnetId" => @ec2_subnet_id,
    "ec2SubnetIds" => @ec2_subnet_ids,
    "emrManagedMasterSecurityGroup" => @emr_managed_master_security_group,
    "emrManagedSlaveSecurityGroup" => @emr_managed_slave_security_group,
    "hadoopVersion" => @hadoop_version,
    "instanceCount" => @instance_count,
    "instanceFleets" => @instance_fleets,
    "instanceGroups" => @instance_groups,
    "masterInstanceType" => @master_instance_type,
    "placement" => @placement,
    "serviceAccessSecurityGroup" => @service_access_security_group,
    "slaveInstanceType" => @slave_instance_type,
    "terminationProtected" => @termination_protected,
  })
  result.compact
end