Class: Aws::AutoScaling::LaunchConfiguration
- Inherits:
-
Object
- Object
- Aws::AutoScaling::LaunchConfiguration
- Defined in:
- gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#associate_public_ip_address ⇒ Boolean
Specifies whether to assign a public IPv4 address to the group's instances.
-
#block_device_mappings ⇒ Array<Types::BlockDeviceMapping>
The block device mapping entries that define the block devices to attach to the instances at launch.
-
#classic_link_vpc_id ⇒ String
Available for backward compatibility.
-
#classic_link_vpc_security_groups ⇒ Array<String>
Available for backward compatibility.
-
#created_time ⇒ Time
The creation date and time for the launch configuration.
-
#ebs_optimized ⇒ Boolean
Specifies whether the launch configuration is optimized for EBS I/O (
true
) or not (false
). -
#iam_instance_profile ⇒ String
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.
-
#image_id ⇒ String
The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances.
-
#instance_monitoring ⇒ Types::InstanceMonitoring
Controls whether instances in this group are launched with detailed (
true
) or basic (false
) monitoring. -
#instance_type ⇒ String
The instance type for the instances.
-
#kernel_id ⇒ String
The ID of the kernel associated with the AMI.
-
#key_name ⇒ String
The name of the key pair.
-
#launch_configuration_arn ⇒ String
The Amazon Resource Name (ARN) of the launch configuration.
-
#metadata_options ⇒ Types::InstanceMetadataOptions
The metadata options for the instances.
-
#name ⇒ String
(also: #launch_configuration_name)
-
#placement_tenancy ⇒ String
The tenancy of the instance, either
default
ordedicated
. -
#ramdisk_id ⇒ String
The ID of the RAM disk associated with the AMI.
-
#security_groups ⇒ Array<String>
A list that contains the security groups to assign to the instances in the Auto Scaling group.
-
#spot_price ⇒ String
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request.
-
#user_data ⇒ String
The user data to make available to the launched EC2 instances.
Actions collapse
Instance Method Summary collapse
-
#client ⇒ Client
-
#data ⇒ Types::LaunchConfiguration
Returns the data for this LaunchConfiguration.
-
#data_loaded? ⇒ Boolean
Returns
true
if this resource is loaded. -
#initialize(*args) ⇒ LaunchConfiguration
constructor
A new instance of LaunchConfiguration.
-
#load ⇒ self
(also: #reload)
Loads, or reloads #data for the current LaunchConfiguration.
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::AutoScaling::Client] #wait_until instead
Constructor Details
#initialize(name, options = {}) ⇒ LaunchConfiguration #initialize(options = {}) ⇒ LaunchConfiguration
Returns a new instance of LaunchConfiguration.
22 23 24 25 26 27 28 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @name = extract_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end |
Instance Method Details
#associate_public_ip_address ⇒ Boolean
Specifies whether to assign a public IPv4 address to the group's instances. If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide.
222 223 224 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 222 def associate_public_ip_address data[:associate_public_ip_address] end |
#block_device_mappings ⇒ Array<Types::BlockDeviceMapping>
The block device mapping entries that define the block devices to attach to the instances at launch. By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances.
143 144 145 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 143 def block_device_mappings data[:block_device_mappings] end |
#classic_link_vpc_id ⇒ String
Available for backward compatibility.
83 84 85 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 83 def classic_link_vpc_id data[:classic_link_vpc_id] end |
#classic_link_vpc_security_groups ⇒ Array<String>
Available for backward compatibility.
89 90 91 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 89 def classic_link_vpc_security_groups data[:classic_link_vpc_security_groups] end |
#client ⇒ Client
256 257 258 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 256 def client @client end |
#created_time ⇒ Time
The creation date and time for the launch configuration.
191 192 193 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 191 def created_time data[:created_time] end |
#data ⇒ Types::LaunchConfiguration
Returns the data for this Aws::AutoScaling::LaunchConfiguration. Calls
Client#describe_launch_configurations if #data_loaded? is false
.
278 279 280 281 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 278 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
286 287 288 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 286 def data_loaded? !!@data end |
#delete(options = {}) ⇒ EmptyStructure
396 397 398 399 400 401 402 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 396 def delete( = {}) = .merge(launch_configuration_name: @name) resp = Aws::Plugins::UserAgent.feature('resource') do @client.delete_launch_configuration() end resp.data end |
#ebs_optimized ⇒ Boolean
Specifies whether the launch configuration is optimized for EBS I/O
(true
) or not (false
). For more information, see Amazon
EBS-Optimized Instances in the Amazon EC2 User Guide for Linux
Instances.
204 205 206 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 204 def ebs_optimized data[:ebs_optimized] end |
#iam_instance_profile ⇒ String
The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide.
185 186 187 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 185 def iam_instance_profile data[:iam_instance_profile] end |
#image_id ⇒ String
The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see Find a Linux AMI in the Amazon EC2 User Guide for Linux Instances.
52 53 54 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 52 def image_id data[:image_id] end |
#instance_monitoring ⇒ Types::InstanceMonitoring
Controls whether instances in this group are launched with detailed
(true
) or basic (false
) monitoring.
For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide.
157 158 159 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 157 def instance_monitoring data[:instance_monitoring] end |
#instance_type ⇒ String
The instance type for the instances. For information about available instance types, see Available instance types in the Amazon EC2 User Guide for Linux Instances.
117 118 119 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 117 def instance_type data[:instance_type] end |
#kernel_id ⇒ String
The ID of the kernel associated with the AMI.
123 124 125 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 123 def kernel_id data[:kernel_id] end |
#key_name ⇒ String
The name of the key pair.
For more information, see Amazon EC2 Key Pairs in the Amazon EC2 User Guide for Linux Instances.
65 66 67 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 65 def key_name data[:key_name] end |
#launch_configuration_arn ⇒ String
The Amazon Resource Name (ARN) of the launch configuration.
40 41 42 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 40 def launch_configuration_arn data[:launch_configuration_arn] end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::AutoScaling::LaunchConfiguration.
Returns self
making it possible to chain methods.
launch_configuration.reload.data
266 267 268 269 270 271 272 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 266 def load resp = Aws::Plugins::UserAgent.feature('resource') do @client.describe_launch_configurations(launch_configuration_names: [@name]) end @data = resp.launch_configurations[0] self end |
#metadata_options ⇒ Types::InstanceMetadataOptions
The metadata options for the instances. For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide.
249 250 251 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 249 def data[:metadata_options] end |
#name ⇒ String Also known as: launch_configuration_name
33 34 35 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 33 def name @name end |
#placement_tenancy ⇒ String
The tenancy of the instance, either default
or dedicated
. An
instance with dedicated
tenancy runs on isolated, single-tenant
hardware and can only be launched into a VPC.
For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.
237 238 239 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 237 def placement_tenancy data[:placement_tenancy] end |
#ramdisk_id ⇒ String
The ID of the RAM disk associated with the AMI.
129 130 131 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 129 def ramdisk_id data[:ramdisk_id] end |
#security_groups ⇒ Array<String>
A list that contains the security groups to assign to the instances in the Auto Scaling group. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.
77 78 79 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 77 def security_groups data[:security_groups] end |
#spot_price ⇒ String
The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Requesting Spot Instances in the Amazon EC2 Auto Scaling User Guide.
171 172 173 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 171 def spot_price data[:spot_price] end |
#user_data ⇒ String
The user data to make available to the launched EC2 instances. For more information, see Instance metadata and user data (Linux) and Instance metadata and user data (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB.
105 106 107 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 105 def user_data data[:user_data] end |
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::AutoScaling::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
Example
instance.wait_until(max_attempts:10, delay:5) do |instance|
instance.state.name == 'running'
end
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
# disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 |
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/launch_configuration.rb', line 370 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.feature('resource') do Aws::Waiters::Waiter.new().wait({}) end end |