Class: AWS::ELB::LoadBalancerCollection
- Inherits:
-
Object
- Object
- AWS::ELB::LoadBalancerCollection
- Includes:
- Core::Collection::Simple, ListenerOpts
- Defined in:
- lib/aws/elb/load_balancer_collection.rb
Instance Attribute Summary
Attributes included from Core::Model
Instance Method Summary collapse
-
#[](name) ⇒ LoadBalancer
Returns the load balancer with the given name.
-
#create(name, options = {}) ⇒ Object
Creates and returns a load balancer.
Methods included from Core::Collection::Simple
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) ⇒ LoadBalancer
Returns the load balancer with the given name. This does not make a request, just returns a reference.
91 92 93 |
# File 'lib/aws/elb/load_balancer_collection.rb', line 91 def [] name LoadBalancer.new(name, :config => config) end |
#create(name, options = {}) ⇒ Object
Creates and returns a load balancer. A load balancer requires:
-
a unique name
-
at least one availability zone
-
at least one listener
An example that creates a load balancer in two availability zones with a single listener:
load_balancer = elb.load_balancers.create('my-load-balancer',
:availability_zones => %w(us-east-1a us-east-1b),
:listeners => [{
:port => 80,
:protocol => :http,
:instance_port => 80,
:instance_protocol => :http,
}])
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/elb/load_balancer_collection.rb', line 66 def create name, = {} zones = [[:availability_zones]].flatten.collect do |zone| zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone end listeners = [[:listeners]].flatten.collect do |listener_opts| format_listener_opts(listener_opts) end response = client.create_load_balancer( :load_balancer_name => name.to_s, :availability_zones => zones, :listeners => listeners) opts = {} opts[:config] = config opts[:dns_name] = response.dns_name LoadBalancer.new(name, opts) end |