2012-05-09 95 views
3

我很新使用亞馬遜的ruby-sdk(gem install aws-sdk),並且試圖簡單地爲快照資源創建一個標籤。下面是我在做什麼:對於AWS,您如何使用ruby aws-sdk將標籤設置爲資源?

ec2.tags.create(:resource_id => "snap-7d3aa701", :key => "My Test Tag", :value => "My test value") 
ArgumentError: wrong number of arguments (1 for 2) 

注意,EC2 = AWS :: EC2.new(後設置我的憑據)。

任何想法我做錯了什麼?我一直沒能找到一個使用ruby aws-sdk進行標記的例子。

回答

4

標記EC2資源的最簡單方法是使用#tags方法:

ec2.snapshots["snapshot-id"].tags["tag"] = "value" 

如果要創建標記對象的句柄,仍然可以使用TagCollection#create方法。它期望第一個參數是一個資源:

tag = ec2.tags.create(ec2.snapshots['snapshot-id'], 'tag') # no tag value 

tag = ec2.tags.create(ec2.snapshots['snapshot-id'], 'tag', 'value') 
2

這可能只是通過一個錯字引起的,第一個參數的名稱應該是resource而非resource_id - 參見AWS SDK for RubyAPI referencecreate(resource, key, options = {})實例方法,它提供了兩個短的實例,以及:

創建一個新標籤並將其分配給EC2資源。

實例

用名稱(鍵)標記僅
ec2.tags.create(instance, 'webserver')

用名稱(鍵)標記和值
ec2.tags.create(instance, 'stage', 'production')

參數

  • resource(Object) - 要標記的項目。這應該是可標記的EC2資源,如實例, 安全組等。
  • key(String) - 標記鍵(或名稱)。
  • 選項(散列)(默認爲:{})optins(散列) - 一組可自定義的選項

返回

相關問題