Module: MovableInk::AWS::Metadata

Included in:
MovableInk::AWS
Defined in:
lib/movable_ink/aws/metadata.rb

Instance Method Summary collapse

Instance Method Details

#availability_zoneObject



24
25
26
27
28
29
30
# File 'lib/movable_ink/aws/metadata.rb', line 24

def availability_zone
  @availability_zone ||= begin
    az = ('placement/availability-zone')
    raise(MovableInk::AWS::Errors::EC2Required) if az.empty?
    az
  end
end

#httpObject



6
7
8
9
10
11
12
13
# File 'lib/movable_ink/aws/metadata.rb', line 6

def http
  @http ||= begin
    http = Net::HTTP.new("169.254.169.254", 80)
    http.open_timeout = 1
    http.read_timeout = 1
    http
  end
end

#instance_idObject



32
33
34
35
36
37
38
# File 'lib/movable_ink/aws/metadata.rb', line 32

def instance_id
  @instance_id ||= begin
    id = ('instance-id')
    raise(MovableInk::AWS::Errors::EC2Required) if id.empty?
    id
  end
end

#private_ipv4Object



40
41
42
43
44
45
46
# File 'lib/movable_ink/aws/metadata.rb', line 40

def private_ipv4
  @ipv4 ||= begin
    ipv4 = ('local-ipv4')
    raise(MovableInk::AWS::Errors::EC2Required) if ipv4.empty?
    ipv4
  end
end

#retrieve_metadata(key) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/movable_ink/aws/metadata.rb', line 15

def (key)
  request = Net::HTTP::Get.new("/latest/meta-data/#{key}")
  request['X-aws-ec2-metadata-token'] = imds_token
  response = http.request(request)
  response.body
rescue
  ""
end