Class: AWS::AutoScaling::LaunchConfigurationCollection

Inherits:
Object
  • Object
show all
Includes:
Core::Collection::Limitable
Defined in:
lib/aws/auto_scaling/launch_configuration_collection.rb

Instance Attribute Summary

Attributes included from Core::Model

#config

Instance Method Summary collapse

Methods included from Core::Collection::Limitable

#each_batch

Methods included from Core::Collection

#each, #each_batch, #enum, #first, #in_groups_of, #page

Methods included from Core::Model

#client, #config_prefix, #initialize, #inspect

Instance Method Details

#[](name) ⇒ LaunchConfiguration



91
92
93
# File 'lib/aws/auto_scaling/launch_configuration_collection.rb', line 91

def [] name
  LaunchConfiguration.new(name, :config => config)
end

#create(name, image, instance_type, options = {}) ⇒ LaunchConfiguration

Creates an Auto Scaling launch configuration.

auto_scaling.launch_configurations.create('name', 'ami-12345', 'm1.small')

Options Hash (options):

  • :block_device_mappings (Array<Hash>)
  • :detailed_instance_monitoring (Boolean) — default: true

    When enabled, CloudWatch will generate metrics every minute and your account will be charged a fee. When you disable detailed monitoring, by specifying False, Cloudwatch will generate metrics every 5 minutes.

  • :kernel_id (String)

    The ID of the kernel to launch the instances with.

  • :key_pair (KeyPair, String)

    The keypair to launch instances with. This may be an EC2::KeyPair object or or key pair name string.

  • :ramdisk_id (String)

    The ID of the ramdisk to launch the instances with.

  • :security_groups (Array<EC2::SecurityGroup>, Array<String>)

    The list of security groups to associate with the instances. This may be an array of EC2::SecurityGroup objects, security group names or security group ids.

  • :user_data (String)

    The user data available to the launched Amazon EC2 instances.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/aws/auto_scaling/launch_configuration_collection.rb', line 63

def create name, image, instance_type, options = {}
  
  client_opts = {}
  client_opts[:launch_configuration_name] = name
  client_opts[:image_id] = image_id_opt(image)
  client_opts[:instance_type] = instance_type
  client_opts[:block_device_mappings] = options[:block_device_mappings] if
    options.key?(:block_device_mappings)
  client_opts[:instance_monitoring] = instance_monitoring_opt(options) if
    options.key?(:detailed_instance_monitoring)
  client_opts[:kernel_id] = options[:kernel_id] if options[:kernel_id]
  client_opts[:key_name] = key_name_opt(options) if options[:key_pair]
  client_opts[:ramdisk_id] = options[:ramdisk_id] if options[:ramdisk_id]
  client_opts[:security_groups] = security_groups_opt(options) if
    options.key?(:security_groups)
  client_opts[:user_data] = user_data_opt(options) if options[:user_data]

  client.create_launch_configuration(client_opts)

  LaunchConfiguration.new(name,
    :image_id => client_opts[:image_id],
    :instance_type => client_opts[:instance_type],
    :config => config)

end