Class: InstanceMetadata
- Inherits:
-
Object
- Object
- InstanceMetadata
- Defined in:
- lib/instance_metadata.rb
Constant Summary collapse
- IP_ADDRESS =
'169.254.169.254'
- PORT =
80
Class Method Summary collapse
Class Method Details
.host_identifier ⇒ Object
10 11 12 13 |
# File 'lib/instance_metadata.rb', line 10 def self.host_identifier doc = JSON.parse(http_get('/latest/dynamic/instance-identity/document').strip) "arn:aws:ec2:#{doc['region']}:#{doc['accountId']}:instance/#{doc['instanceId']}" end |
.instance_id ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/instance_metadata.rb', line 22 def self.instance_id begin Net::HTTP.start(IP_ADDRESS, PORT) do |http| response = http.get('/latest/meta-data/instance-id') if response.code.to_i != 200 return nil end return response.body end rescue return nil end end |
.region ⇒ Object
15 16 17 18 19 20 |
# File 'lib/instance_metadata.rb', line 15 def self.region az = http_get('/latest/meta-data/placement/availability-zone').strip raise "Invalid availability zone name: #{az}" unless az =~ /[a-z]{2}-[a-z]+-\d+[a-z]/ az.chop end |