对于AWS,如何使用ruby aws-sdk将标记设置为资源?

我很擅长使用亚马逊的ruby-sdk(gem install 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进行标记的单一示例。

标记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') 

这很可能只是由一个错误引起的,第一个参数名称应该是resource而不是resource_id – 请参阅AWS SDK for Ruby的API参考 ,用于create(resource,key,options = {})实例方法,它提供了两个简短的示例:

创建新标记并将其分配给EC2资源。

示例

仅使用名称(键)进行标记
ec2.tags.create(instance, 'webserver')

使用名称(键)和值进行标记
ec2.tags.create(instance, 'stage', 'production')

参数

  • resource(Object) – 要标记的项目。 这应该是可标记的EC2资源,如实例,安全组等。
  • key(String) – 标记键(或名称)。
  • options(Hash)(默认为:{})optins(Hash) – 一组可自定义的选项

退货

  • ( 标签 )