使用aws sdk获取带有特定标记的ec2实例

时间:2014-04-15 22:51:04

标签: ruby amazon-web-services

我试图找出获得带有某个标签的ec2实例列表的最佳方法,例如" testing"使用ruby aws sdk。

ec2 = AWS::EC2.new(:access_key_id => "XXXXXXXXXXXXX", :secret_access_key => "YYYYYYYYY")
ec2list = ec2.instances.filter("Name", "testing)

由于某些原因,这似乎不起作用。它认为它将过滤掉集合,并给我带有标记测试的实例。有没有办法使用ruby sdk做到这一点?谢谢。

5 个答案:

答案 0 :(得分:7)

如果你想要标签" Name"值"测试"使用方法:

instances = resource.instances(
  filters: [
    { 
      name: 'tag:Name',
      values: ["testing"] 
    }
  ]
)

对于标记键为"测试"的所有实例使用以下内容。

instances = resource.instances(
  filters: [
    { 
      name: 'tag:Key',
      values: ["testing"] 
    }
  ]
)

有关更多过滤器选项,请参阅#instances文档。

答案 1 :(得分:1)

这对我有用:

ec2.instances.tagged("testing")

答案 2 :(得分:1)

以上都没有,但这个对我有用:

ec2.instances.with_tag("Environment","Integration")

答案 3 :(得分:0)

嗨,我想你可以在实例的标签上使用过滤器得到你想要的东西:

ec2 = AWS::EC2.new(:access_key_id => "XXXXXXXXXXXXX", :secret_access_key => "YYYYYYYYY")
ec2list = ec2.instances.tags.filter("Name", "testing)

CF: http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/AutoScaling/TagCollection.html#filter-instance_method http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/EC2.html#tags-instance_method

答案 4 :(得分:0)

我习惯这样做

require 'aws-sdk'

ec2 = AWS::EC2.new(
        :region => cluster_region,
        :access_key_id => key_id,
        :secret_access_key => access_key)

instances = ec2.instances
instances = instances.filter("filter-key", "filter-value")

可以找到可用的过滤器 http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstances.html