class Tagenv::Ec2::Metadata

Constants

TIME_OUT

Public Class Methods

ec2?() click to toggle source
# File lib/tagenv/ec2/metadata.rb, line 11
def self.ec2?
  begin
    ::Timeout.timeout(TIME_OUT) {
      open('http://169.254.169.254/latest/meta-data/instance-id').read
      return true
    }
  rescue => e
    return false
  end
end
get_document() click to toggle source
# File lib/tagenv/ec2/metadata.rb, line 35
def self.get_document
  JSON.parse(get_metadata('/latest/dynamic/instance-identity/document/'))
end
get_instance_id() click to toggle source
# File lib/tagenv/ec2/metadata.rb, line 39
def self.get_instance_id
  get_metadata('/latest/meta-data/instance-id')
end
get_metadata(path) click to toggle source
# File lib/tagenv/ec2/metadata.rb, line 22
def self.get_metadata(path)
  begin
    result = {}
    ::Timeout.timeout(TIME_OUT) {
      body = open('http://169.254.169.254' + path).read
      return body
    }
    return result
  rescue ::Timeout::Error => e
    raise "not EC2 instance"
  end
end