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
Josh Lane df01e7bc24 Merge pull request #302 from ehealy/fix/correct_put_scaling_policy_documenttation
Correct optional parameter naming in documentation for Fog::AWS::Auto…
2016-09-26 08:51:24 -07:00
gemfiles test(ci): bind mime-types dep for 1.9 builds 2016-07-22 09:20:04 -07:00
lib/fog Correct optional parameter naming in documentation for Fog::AWS::Autoscaling::Real#put_scaling_policy 2016-09-26 11:14:10 -04:00
tests Merge pull request #300 from engineyard/trusted_advisor 2016-09-22 14:11:25 -04:00
.gitignore make pry-nav and mime-types available in Gemfile-edge 2016-03-01 08:12:41 -08:00
.travis.yml test(ci): fix 1.9 builds with json >= 2.0 2016-07-22 08:56:25 -07:00
CHANGELOG.md update CHANGELOG.md 2016-09-22 15:29:16 -07:00
CONTRIBUTING.md update OS bits 2015-01-12 10:38:23 -06:00
CONTRIBUTORS.md update OS bits 2015-01-12 10:38:23 -06:00
fog-aws.gemspec GitHub does no longer provide http:// pages 2016-08-02 04:34:17 +09:00
Gemfile Add mimetypes 2015-11-25 21:41:19 +01:00
LICENSE.md update OS bits 2015-01-12 10:38:23 -06:00
Rakefile working tests 2015-01-02 09:42:20 -08:00
README.md Update README.md 2016-03-02 23:33:41 +04: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.

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