2013-08-20 91 views

回答

0

不確定bash會是什麼樣子,但如果可以獲取實例ID,則可以使用實例本身的SDK。您將查詢ec2追索權並傳入ec2實例ID。使用Ruby SDK它會是什麼樣子:

i = ec2.instances["i-12345678"] 
puts i.dns_name 
10

首先,在Amazon EC2實例元數據服務也提供了相當長的一段其他名稱除了instance-id,如果這些可能是你在找什麼 - 看Instance Metadata Categories

  • hostname - 實例的專用主機名。在存在多個網絡接口的情況下,這指的是eth0設備(設備號爲0的設備)。
  • local-hostname - 實例的私有DNS主機名。在存在多個網絡接口的情況下,這指的是eth0設備(設備號爲0的設備)。
  • public-hostname - 該實例的公共DNS。如果實例位於VPC中,則只有在enableDnsHostnames屬性設置爲true時纔會返回此類別。

如果您正在尋找名稱如暴露在AWS Management Console不過,你的確會需要訴諸使用Tools for Amazon Web Services的一個檢索它 - 這名稱其實只是一個普通的標籤使用密鑰名稱(請參閱Tagging Your Amazon EC2 Resources),它恰好在大多數AWS服務中用於顯而易見的目的。

下面是如何與AWS Command Line Interface得到它例如(跳過區和證書):

aws ec2 describe-tags \ 
--filters Name=resource-id,Values=i-abcd1234 Name=key,Values=Name \ 
--query Tags[].Value --output text 
+3

你還可以使用--query命令行參數和--output直接輸出實例名稱,例如:'aws ec2 describe-tags --filters Name = resource-id,Values = i-abcd1234 Name = key,Values = Name --query Tags []。Value --output text' –

+1

@CarlosP - 我已經用你提出的確實更簡單的方法更新了答案('--query'選項在AWS CLI中不可用得到去),謝謝你指出這一點! –

-2

發現describe-tags不能在我的配置文件中工作,失敗並顯示'UnauthorizedOperation'錯誤。得到這個與描述-情況下工作:使用區域和訪問鍵

aws ec2 describe-instances --filters Name=instance-id,Values=$(wget -qO- http://instance-data/latest/meta-data/instance-id) --query Reservations[].Instances[].Tags[].Value --output text 

命令從當前用戶的AWS配置文件的[default]部分:〜/ .aws /配置。如果(可以在AWS控制檯的IAM儀表板中找到)需要使用其他用戶的區域/按鍵,你可以像這樣把它們添加到該文件中的另一個部分,例如[用戶2]並使用命令:

​​3210