【问题标题】:For AWS, how do you set tags to a resource with the ruby aws-sdk?对于 AWS,如何使用 ruby​​ aws-sdk 为资源设置标签?
【发布时间】:2012-05-21 23:37:15
【问题描述】:

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

【问题讨论】:

    标签: amazon-ec2 amazon-web-services ruby


    【解决方案1】:

    标记 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 reference 以了解 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) — 一组可自定义的选项

      返回

      【讨论】:

        猜你喜欢
        • 2017-10-09
        • 2020-03-23
        • 1970-01-01
        • 2018-10-11
        • 1970-01-01
        • 2013-04-12
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多