Class: AWSCDK::Autoscaling::MixedInstancesPolicy
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::Autoscaling::MixedInstancesPolicy
- Defined in:
- autoscaling/mixed_instances_policy.rb
Overview
MixedInstancesPolicy allows you to configure a group that diversifies across On-Demand Instances and Spot Instances of multiple instance types.
For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide:
https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html
Instance Attribute Summary collapse
-
#instances_distribution ⇒ AWSCDK::Autoscaling::InstancesDistribution?
readonly
InstancesDistribution to use.
-
#launch_template ⇒ AWSCDK::EC2::ILaunchTemplate
readonly
Launch template to use.
-
#launch_template_overrides ⇒ Array<AWSCDK::Autoscaling::LaunchTemplateOverrides>?
readonly
Launch template overrides.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(launch_template:, instances_distribution: nil, launch_template_overrides: nil) ⇒ MixedInstancesPolicy
constructor
A new instance of MixedInstancesPolicy.
- #to_jsii ⇒ Object
Constructor Details
#initialize(launch_template:, instances_distribution: nil, launch_template_overrides: nil) ⇒ MixedInstancesPolicy
Returns a new instance of MixedInstancesPolicy.
15 16 17 18 19 20 21 22 |
# File 'autoscaling/mixed_instances_policy.rb', line 15 def initialize(launch_template:, instances_distribution: nil, launch_template_overrides: nil) @launch_template = launch_template Jsii::Type.check_type(@launch_template, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLklMYXVuY2hUZW1wbGF0ZSJ9")), "launchTemplate") @instances_distribution = instances_distribution.is_a?(Hash) ? ::AWSCDK::Autoscaling::InstancesDistribution.new(**instances_distribution.transform_keys(&:to_sym)) : instances_distribution Jsii::Type.check_type(@instances_distribution, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXV0b3NjYWxpbmcuSW5zdGFuY2VzRGlzdHJpYnV0aW9uIn0=")), "instancesDistribution") unless @instances_distribution.nil? @launch_template_overrides = launch_template_overrides.is_a?(Array) ? launch_template_overrides.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::Autoscaling::LaunchTemplateOverrides.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : launch_template_overrides Jsii::Type.check_type(@launch_template_overrides, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hdXRvc2NhbGluZy5MYXVuY2hUZW1wbGF0ZU92ZXJyaWRlcyJ9LCJraW5kIjoiYXJyYXkifX0=")), "launchTemplateOverrides") unless @launch_template_overrides.nil? end |
Instance Attribute Details
#instances_distribution ⇒ AWSCDK::Autoscaling::InstancesDistribution? (readonly)
Default: - The value for each property in it uses a default value.
InstancesDistribution to use.
32 33 34 |
# File 'autoscaling/mixed_instances_policy.rb', line 32 def instances_distribution @instances_distribution end |
#launch_template ⇒ AWSCDK::EC2::ILaunchTemplate (readonly)
Launch template to use.
27 28 29 |
# File 'autoscaling/mixed_instances_policy.rb', line 27 def launch_template @launch_template end |
#launch_template_overrides ⇒ Array<AWSCDK::Autoscaling::LaunchTemplateOverrides>? (readonly)
Default: - Do not provide any overrides
Launch template overrides.
The maximum number of instance types that can be associated with an Auto Scaling group is 40.
The maximum number of distinct launch templates you can define for an Auto Scaling group is 20.
41 42 43 |
# File 'autoscaling/mixed_instances_policy.rb', line 41 def launch_template_overrides @launch_template_overrides end |
Class Method Details
.jsii_properties ⇒ Object
43 44 45 46 47 48 49 |
# File 'autoscaling/mixed_instances_policy.rb', line 43 def self.jsii_properties { :launch_template => "launchTemplate", :instances_distribution => "instancesDistribution", :launch_template_overrides => "launchTemplateOverrides", } end |
Instance Method Details
#to_jsii ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'autoscaling/mixed_instances_policy.rb', line 51 def to_jsii result = {} result.merge!({ "launchTemplate" => @launch_template, "instancesDistribution" => @instances_distribution, "launchTemplateOverrides" => @launch_template_overrides, }) result.compact end |