You are viewing documentation for version 1 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: AWS::AutoScaling::LaunchConfigurationCollection

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

Instance Method Summary collapse

Methods included from Core::Collection

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

Instance Method Details

#[](name) ⇒ LaunchConfiguration

Parameters:

  • name (String)

    The name of a launch configuration.

Returns:



124
125
126
# File 'lib/aws/auto_scaling/launch_configuration_collection.rb', line 124

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')

Parameters:

  • name (String)

    The name of the launch configuration to create.

  • image (EC2::Image, String)

    An EC2::Image or image id string.

  • instance_type (String)

    The type of instance (e.g. 't1.micro', 'm1.small', 'm2.4xlarge', etc).

  • options (Hash) (defaults to: {})

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>)

    A list of security groups to associate with the instances. For both EC2 Classic and VPC, this option can be an array of EC2::SecurityGroup objects or security group ids. For EC2 Classic, this option can also be an array of security group names. Note: The VPC is derived from the security groups.

  • :user_data (String)

    The user data available to the launched Amazon EC2 instances.

  • :iam_instance_profile (String)
  • :spot_price (String)
  • :associate_public_ip_address (Boolean)

    Used for Auto Scaling groups that launch instances into an Amazon Virtual Private Cloud (Amazon VPC). Specifies whether to assign a public IP address to each instance launched in a Amazon VPC.

  • :placement_tenancy (String)
  • :classic_link_vpc_id (String)

    The ID of a ClassicLink-enabled VPC to link EC2 Classic instances to.

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

    The list of security groups for the specified VPC to associate with the instances. This may be an array of EC2::SecurityGroup objects or security group ids. VPC security groups cannot be referenced by name.

Returns:



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/aws/auto_scaling/launch_configuration_collection.rb', line 85

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[:instance_monitoring] = instance_monitoring_opt(options) if
    options.key?(:detailed_instance_monitoring)
  client_opts[:key_name] = key_name_opt(options) if options[:key_pair]
  client_opts[:security_groups] = security_groups_opt(options[:security_groups]) if
    options.key?(:security_groups)
  client_opts[:classic_link_vpc_security_groups] = security_groups_opt(options[:classic_link_vpc_security_groups]) if
    options.key?(:classic_link_vpc_security_groups)
  client_opts[:user_data] = user_data_opt(options) if options[:user_data]

  [
    :classic_link_vpc_id,
    :iam_instance_profile,
    :spot_price,
    :kernel_id,
    :ramdisk_id,
    :block_device_mappings,
    :associate_public_ip_address,
    :placement_tenancy,
  ].each do |opt|
    client_opts[opt] = options[opt] if options.key?(opt)
  end

  client.create_launch_configuration(client_opts)

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

end