2013-06-24 73 views
2

所以我正在寫一個rails應用程序,允許用戶在ec2上創建一個實例。到目前爲止,我已經能夠很好地完成並運行,只有一個例外:我似乎無法爲該實例提供名稱。當我查看管理控制檯並看到一堆沒有名字的實例時,它變得令人困惑。我已經看過documentation創建實例,沒有可用的選項似乎符合法案,但也許我錯過了一些東西。如何在使用aws sdk for ruby​​創建實例時給出實例名稱?

tl; dr當我使用適用於ruby的AWS開發工具包創建實例時,如何爲實例指定名稱?

編輯: 有人建議我用ec2.client.create_tags這樣的:

ec2.client.create_tags(:resources => [@instance.instance_id, :tags => [ 
    { :key => 'Name', :value => @instance.instance_name }, 
]]) 

,但我得到這個錯誤:expected string value for member 2 of option resources

兩個@instance.instance_name@instance.instance_id都是字符串,所以我不知道這是怎麼回事。

EDIT2:上面的錯誤是由於錯誤的括號。

回答

4

創建實例後,需要爲其添加標籤。您最多可以添加10個任意鍵值對,如果鍵爲「名稱」,則aws控制檯默認顯示該值。您還可以將控制檯配置爲顯示您認爲有用的任何其他標籤。

像這樣的東西應該做的伎倆,假設你的實例是「i-123abc」。

ec2 = AWS::EC2.new 
ec2.client.create_tags(:resources => ["i-123abc"], :tags => [ 
    { :key => 'Name', :value => 'an instance' } 
]) 
+0

當我嘗試時出現添加錯誤。 '選項資源成員2期望的字符串值'我把我的確切代碼放在問題中。 –

+0

糟糕,我的託槽放錯了一點點,而輸入 –

0

我會嘗試以下...

1. (設置的AWS)

ec2 = AWS::EC2.new(
    :access_key_id => 'YOUR_ACCESS_KEY_ID', 
    :secret_access_key => 'YOUR_SECRET_ACCESS_KEY') 

2(運行一個實例)

ec2.instances.create(:image_id => "ami-8c1fece5") 

3。 (檢查實例是否正在運行)

i = ec2.instances["i-12345678"] 
i.exists? 

完成。