3

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

4

2 回答 2

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')
于 2012-05-17T20:31:48.880 回答
2

这可能只是由拼写错误引起的,第一个参数名称应该是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) — 一组可自定义的选项

返回

于 2012-05-09T07:50:33.263 回答