ruby - 查找未分配的弹性 IP

标签 ruby amazon-web-services fog

我正在尝试使用 Fog 查找所有未分配的弹性 IP,但似乎 Fog::Compute::AWS::Addresses 中的过滤不允许您过滤空值。

例如,

ips = Fog::Compute.new(credentials).addresses.all('domain' => 'vpc', 'instance-id' => '')

返回一个空数组,但是

ips = Fog::Compute.new(credentials).addresses.all('domain' => 'vpc').find_all {|eip| eip.server.nil? }

我正在寻找的列表中的结果。但是,我们有大量的弹性 IP,后一种方法非常慢。

有什么方法可以过滤 Fog 中的空值吗?或者可能是一种更有效的方式来梳理结果以获得我正在寻找的列表?

最佳答案

我找不到我的问题的确切答案,但我找到了一种更快的方法来完成我的任务。 eip.server 将触发 Fog 尝试查找服务器资源,因此如果您可以通过使用 eip.server_id 来获得更快的结果。即,

ips = Fog::Compute.new(credentials).addresses.all('domain' => 'vpc').find_all {|eip| eip.server_id.nil? }

关于ruby - 查找未分配的弹性 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384827/

相关文章:

ruby - 我应该使用什么 gem 来使用 AWS

ruby - 在 Ruby 1.9.3 中,一个向量不能乘以另一个向量?

ruby - 如何从/usr/local 卸载 Ruby?

amazon-web-services - S3 与 EBS 性能

java - 我可以使用 Java 创建 Cloudwatch 自定义指标吗?

amazon-s3 - S3 存储因雾 0.7.2 + 载波主分支而失败

ruby-on-rails - 上传文件参数未通过 Controller

ruby - 使用 systemu 而不是 open3 的好处?

amazon-web-services - 如果我向他们注册和管理我的域,我是否必须使用 Amazon Route 53 的 DNS 服务(并为此付费)?

ruby-on-rails - Rails、CarrierWave 和 Fog - 销毁或覆盖时忽略丢失的文件