【问题标题】:How to get public ip address from AWS with Ruby SDK如何使用 Ruby SDK 从 AWS 获取公共 IP 地址
【发布时间】:2016-12-15 18:10:33
【问题描述】:

我是 AWS 的新手。

我想从 Ruby SDK 获取公共 IP 地址,但找不到如何获取它。

需要'aws-sdk'

ec2 = Aws::EC2::Resource.new(region: 'us-west-2')

i = ec2.instance('i-XXXXXX')

用这两个命令,我只得到状态和代码。

公网IP地址在我们关闭实例时通常会发生变化,如何获取?

提前致谢

【问题讨论】:

  • 也许这很难看,但你可以做一个 curl 调用。像这样;卷曲169.254.169.254/latest/meta-data/public-ipv4
  • 感谢您的回复。是的,通过该解决方案,我们可以获得公共 IP 地址。我尝试使用编程方式来处理它。我可以在 Java SDK 中找到,但在 Ruby SDK 中找不到。

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


【解决方案1】:

一旦您拥有Instance 对象(在您的情况下为i 变量),请使用public_ip_address 属性来引用您的EC2 实例的公共IP 地址。

例子:

require 'aws-sdk'
ec2 = Aws::EC2::Resource.new(region: 'us-west-2')
i = ec2.instance('i-XXXXXX')
publicIp = i.public_ip_address

文档:http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Instance.html#public_ip_address-instance_method

【讨论】:

  • 谢谢。这是新手的错。当我打印“I.state”并看到类型是 INstanceState 时我迷路了,所以我认为它没有公共 IP 地址。这有助于我澄清它是如何工作的干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
相关资源
最近更新 更多