Class: AWSCDK::EMR::CfnInstanceFleetConfig::SpotProvisioningSpecificationProperty
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::EMR::CfnInstanceFleetConfig::SpotProvisioningSpecificationProperty
- Defined in:
- emr/cfn_instance_fleet_config.rb
Overview
SpotProvisioningSpecification is a subproperty of the InstanceFleetProvisioningSpecifications property type.
SpotProvisioningSpecification determines the launch specification for Spot instances in the instance fleet, which includes the defined duration and provisioning timeout behavior.
The instance fleet configuration is available only in Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions.
Instance Attribute Summary collapse
-
#allocation_strategy ⇒ String?
readonly
Specifies one of the following strategies to launch Spot Instance fleets:
capacity-optimized,price-capacity-optimized,lowest-price, ordiversified, andcapacity-optimized-prioritized. -
#block_duration_minutes ⇒ Numeric?
readonly
The defined duration for Spot Instances (also known as Spot blocks) in minutes.
-
#timeout_action ⇒ String
readonly
The action to take when
TargetSpotCapacityhas not been fulfilled when theTimeoutDurationMinuteshas expired;. -
#timeout_duration_minutes ⇒ Numeric
readonly
The Spot provisioning timeout period in minutes.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(timeout_action:, timeout_duration_minutes:, allocation_strategy: nil, block_duration_minutes: nil) ⇒ SpotProvisioningSpecificationProperty
constructor
A new instance of SpotProvisioningSpecificationProperty.
- #to_jsii ⇒ Object
Constructor Details
#initialize(timeout_action:, timeout_duration_minutes:, allocation_strategy: nil, block_duration_minutes: nil) ⇒ SpotProvisioningSpecificationProperty
Returns a new instance of SpotProvisioningSpecificationProperty.
1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 |
# File 'emr/cfn_instance_fleet_config.rb', line 1118 def initialize(timeout_action:, timeout_duration_minutes:, allocation_strategy: nil, block_duration_minutes: nil) @timeout_action = timeout_action Jsii::Type.check_type(@timeout_action, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "timeoutAction") @timeout_duration_minutes = timeout_duration_minutes Jsii::Type.check_type(@timeout_duration_minutes, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "timeoutDurationMinutes") @allocation_strategy = allocation_strategy Jsii::Type.check_type(@allocation_strategy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "allocationStrategy") unless @allocation_strategy.nil? @block_duration_minutes = block_duration_minutes Jsii::Type.check_type(@block_duration_minutes, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "blockDurationMinutes") unless @block_duration_minutes.nil? end |
Instance Attribute Details
#allocation_strategy ⇒ String? (readonly)
Specifies one of the following strategies to launch Spot Instance fleets: capacity-optimized , price-capacity-optimized , lowest-price , or diversified , and capacity-optimized-prioritized .
For more information on the provisioning strategies, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide for Linux Instances .
When you launch a Spot Instance fleet with the old console, it automatically launches with the
capacity-optimizedstrategy. You can't change the allocation strategy from the old console.
1151 1152 1153 |
# File 'emr/cfn_instance_fleet_config.rb', line 1151 def allocation_strategy @allocation_strategy end |
#block_duration_minutes ⇒ Numeric? (readonly)
The defined duration for Spot Instances (also known as Spot blocks) in minutes.
When specified, the Spot Instance does not terminate before the defined duration expires, and defined duration pricing for Spot Instances applies. Valid values are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as a Spot Instance receives its instance ID. At the end of the duration, Amazon EC2 marks the Spot Instance for termination and provides a Spot Instance termination notice, which gives the instance a two-minute warning before it terminates.
Spot Instances with a defined duration (also known as Spot blocks) are no longer available to new customers from July 1, 2021. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022.
1160 1161 1162 |
# File 'emr/cfn_instance_fleet_config.rb', line 1160 def block_duration_minutes @block_duration_minutes end |
#timeout_action ⇒ String (readonly)
The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired;
that is, when all Spot Instances could not be provisioned within the Spot provisioning timeout. Valid values are TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND . SWITCH_TO_ON_DEMAND specifies that if no Spot Instances are available, On-Demand Instances should be provisioned to fulfill any remaining Spot capacity.
1135 1136 1137 |
# File 'emr/cfn_instance_fleet_config.rb', line 1135 def timeout_action @timeout_action end |
#timeout_duration_minutes ⇒ Numeric (readonly)
The Spot provisioning timeout period in minutes.
If Spot Instances are not provisioned within this time period, the TimeOutAction is taken. Minimum value is 5 and maximum value is 1440. The timeout applies only during initial provisioning, when the cluster is first created.
1142 1143 1144 |
# File 'emr/cfn_instance_fleet_config.rb', line 1142 def timeout_duration_minutes @timeout_duration_minutes end |
Class Method Details
.jsii_properties ⇒ Object
1162 1163 1164 1165 1166 1167 1168 1169 |
# File 'emr/cfn_instance_fleet_config.rb', line 1162 def self.jsii_properties { :timeout_action => "timeoutAction", :timeout_duration_minutes => "timeoutDurationMinutes", :allocation_strategy => "allocationStrategy", :block_duration_minutes => "blockDurationMinutes", } end |
Instance Method Details
#to_jsii ⇒ Object
1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 |
# File 'emr/cfn_instance_fleet_config.rb', line 1171 def to_jsii result = {} result.merge!({ "timeoutAction" => @timeout_action, "timeoutDurationMinutes" => @timeout_duration_minutes, "allocationStrategy" => @allocation_strategy, "blockDurationMinutes" => @block_duration_minutes, }) result.compact end |