1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
Module for the 'fog' gem to support Amazon Web Services http://aws.amazon.com/
Find a file
2019-11-11 10:01:02 -06:00
gemfiles Drop Ruby<2.0 support 2017-10-23 16:49:59 +03:00
lib Add get_object_tagging and put_object_tagging Storage requests 2019-11-07 13:59:41 +01:00
tests Fix load balancers parser to handle more than one availability zone with addresses 2019-10-29 13:49:56 +01:00
.gitignore Add tags attribute to Storage::File model 2019-11-07 13:59:41 +01:00
.travis.yml update travis config 2019-01-30 10:21:44 -06:00
CHANGELOG.md v3.5.2 changelog 2019-07-16 12:04:22 -05:00
CONTRIBUTING.md docs(*): Update outdated info 2017-09-14 12:53:46 -03:00
CONTRIBUTORS.md feat(CONTRIBUTORS): Update 2017-09-14 16:51:42 -03:00
fog-aws.gemspec bump rubyzip dependency 2019-10-17 09:50:09 -05:00
Gemfile Modify using Code Climate. 2016-11-22 12:06:32 +09:00
LICENSE.md docs(*): Update outdated info 2017-09-14 12:53:46 -03:00
Rakefile update changelog (and add generation stuff for future) 2019-03-13 11:38:00 -05:00
README.md Include link to full documentation 2018-03-14 15:32:01 -06:00
stale.yml add config for stalebot 2018-08-06 15:20:42 -05:00

Fog::Aws

Gem Version Build Status Dependency Status Test Coverage Code Climate

Installation

Add this line to your application's Gemfile:

gem 'fog-aws'

And then execute:

$ bundle

Or install it yourself as:

$ gem install fog-aws

Usage

Before you can use fog-aws, you must require it in your application:

require 'fog/aws'

Since it's a bad practice to have your credentials in source code, you should load them from default fog configuration file: ~/.fog. This file could look like this:

default:
  aws_access_key_id:     <YOUR_ACCESS_KEY_ID>
  aws_secret_access_key: <YOUR_SECRET_ACCESS_KEY>

Connecting to EC2 service

ec2 = Fog::Compute.new :provider => 'AWS', :region => 'us-west-2'

You can review all the requests available with this service using #requests method:

ec2.requests # => [:allocate_address, :assign_private_ip_addresses, :associate_address, ...]

Launch an EC2 on-demand instance:

response = ec2.run_instances(
  "ami-23ebb513",
  1,
  1,
  "InstanceType"  => "t1.micro",
  "SecurityGroup" => "ssh",
  "KeyName"       => "miguel"
)
instance_id = response.body["instancesSet"].first["instanceId"] # => "i-02db5af4"
instance = ec2.servers.get(instance_id)
instance.wait_for { ready? }
puts instance.public_ip_address # => "356.300.501.20"

Terminate an EC2 instance:

instance = ec2.servers.get("i-02db5af4")
instance.destroy

Fog::AWS is more than EC2 since it supports many services provided by AWS. The best way to learn and to know about how many services are supported is to take a look at the source code. To review the tests directory and to play with the library in irb can be very helpful resources as well.

Documentation

See the online documentation for a complete API reference.

Contributing

  1. Fork it ( https://github.com/fog/fog-aws/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request