Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用aws sdk获取带有特定标记的ec2实例_Ruby_Amazon Web Services - Fatal编程技术网

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

Ruby 使用aws sdk获取带有特定标记的ec2实例,ruby,amazon-web-services,Ruby,Amazon Web Services,我试图找出使用ruby aws sdk获取带有特定标记的ec2实例列表的最佳方法,例如“测试” ec2 = AWS::EC2.new(:access_key_id => "XXXXXXXXXXXXX", :secret_access_key => "YYYYYYYYY") ec2list = ec2.instances.filter("Name", "testing) 出于某种原因,这似乎不起作用。它认为它会过滤掉集合,只给我一些带有标记测试的实例。有没有一种方法可以使用ruby

我试图找出使用ruby aws sdk获取带有特定标记的ec2实例列表的最佳方法,例如“测试”

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

出于某种原因,这似乎不起作用。它认为它会过滤掉集合,只给我一些带有标记测试的实例。有没有一种方法可以使用ruby sdk实现这一点?谢谢。

您好,我想您可以使用实例标签上的过滤器获得所需内容:

ec2 = AWS::EC2.new(:access_key_id => "XXXXXXXXXXXXX", :secret_access_key => "YYYYYYYYY")
ec2list = ec2.instances.tags.filter("Name", "testing)
CF: 这对我很有效:

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

以上这些都不起作用,但这一条对我起作用:

ec2.instances.tagged("testing")
ec2.instances.with_tag("Environment","Integration")
如果您希望标签“Name”的值为“testing”,请使用:

对于标记键为“testing”的所有实例,使用以下命令

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

有关更多筛选选项,请参阅文档。

我习惯于这样做

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")
您可以在以下位置找到可用的过滤器: