Amazon ec2 对于AWS,如何使用ruby AWS sdk为资源设置标记?

Amazon ec2 对于AWS,如何使用ruby AWS sdk为资源设置标记?,amazon-ec2,amazon-web-services,ruby,Amazon Ec2,Amazon Web Services,Ruby,我对使用Amazon的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

我对使用Amazon的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进行标记的示例。

这可能是由于键入错误造成的,第一个参数名应该是
resource
,而不是
resource\u id
——请参阅的,以获取实例方法,它还提供了两个简短的示例:

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

示例

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

使用名称(键)和值标记
ec2.tags.create(实例,'stage','production')

参数

  • 资源(对象)-要标记的项。这应该是一个可标记的EC2资源,就像一个实例, 安全组等
  • 键(字符串)-标记键(或名称)
  • 选项(散列)(默认为:{})选项(散列)-一组可自定义的选项
返回

  • ()

标记EC2资源的最简单方法是使用#标记方法:

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