Class: AWS::AutoScaling::GroupCollection

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

Instance Method Summary collapse

Methods included from Core::Collection

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

Instance Method Details

#[](name) ⇒ Group



66
67
68
# File 'lib/aws/auto_scaling/group_collection.rb', line 66

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

#create(name, options = {}) ⇒ Group

Creates an Auto Scaling Group.

group = auto_scaling.groups.create('group-name', 
  :launch_configuration => 'launch-config-name',
  :availability_zones => %(us-east-1a us-east-1b),
  :min_size => 1,
  :max_size => 4)

Options Hash (options):

  • :load_balancers (Array<ELB::LoadBalancer>, Array<String>)

    A list of load balancers to use. This can be an array of ELB::LoadBalancer objects or an array of load balancer names.

  • :min_size (required, Integer)

    The maximum size of the Auto Scaling group.

  • :max_size (required, Integer)

    The minimum size of the Auto Scaling group.

  • :launch_configuration (required, LaunchConfiguration, String)

    The launch configuration to use with the Auto Scaling group. This may be a LaunchConfiguration object or a launch configuration name string.

  • :availability_zones (required, Array<String>)

    A list of Availability Zones for the Auto Scaling group. This can be EC2::AvailabilityZone objects or availability zone names.

  • :default_cooldown (Integer)

    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.

  • :desired_capacity (Integer)

    The number of Amazon EC2 instances that should be running in the group.

  • :health_check_grace_period (Integer)

    Length of time in seconds after a new Amazon EC2 instance comes into service that Auto Scaling starts checking its health.

  • :health_check_type (Symbol)

    The service you want the health status from, Amazon EC2 or Elastic Load Balancer. Valid values are :ec2 or :elb.

  • :placement_group (String)

    Physical location of your cluster placement group created in Amazon EC2. For more information about cluster placement group, see Using Cluster Instances.

  • :tags (Array<Hash>)

    A list of tags to apply launched instances. Each tag hash may have the following keys:

    • :key - (required,String) The tag name.

    • :value - (String) The optional tag value.

    • :propagate_at_launch - (Boolean) Whether or not to propagate to instances, defaults to true.

  • :subnets (Array<EC2::Subnet>, Array<String>)

    A list of subnet identifiers of Amazon Virtual Private Clouds (Amazon VPCs). Ensure the subnets’ Availability Zones match the Availability Zones specified.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/aws/auto_scaling/group_collection.rb', line 43

def create name, options = {}

  unless options[:launch_configuration]
    raise ArgumentError, 'missing required option :launch_configuration'
  end

  group_opts = group_options(options)
  group_opts[:auto_scaling_group_name] = name

  if balancers = options[:load_balancers]
    group_opts[:load_balancer_names] = balancers.collect do |balancer|
      balancer.is_a?(ELB::LoadBalancer) ? balancer.name : balancer
    end
  end

  client.create_auto_scaling_group(group_opts)

  self[name]

end