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

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

Parameters:

  • name (String)

    The name of the Auto Scaling group.

Returns:



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-west-2a us-west-2b),
  :min_size => 1,
  :max_size => 4)

Parameters:

  • name (String)

    The name of the Auto Scaling group. Must be unique within the scope of your AWS account.

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

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.

  • :termination_policies (Array<String>)

    A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order they are listed. For more information on creating a termination policy for your Auto Scaling group, go to Instance Termination Policy for Your Auto Scaling Group in the Auto Scaling Developer Guide.

  • :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.

Returns:



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