如何使用 Ruby SDK 从 AWS 获取公共 IP 地址
Posted
技术标签:
【中文标题】如何使用 Ruby SDK 从 AWS 获取公共 IP 地址【英文标题】:How to get public ip address from AWS with Ruby SDK 【发布时间】: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 中找不到。 【参考方案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 地址。这有助于我澄清它是如何工作的干杯以上是关于如何使用 Ruby SDK 从 AWS 获取公共 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章
ruby 本要点展示了我如何使用Ruby AWS SDK,Fog和Carrierwave在我的应用程序中实现AWS假设角色功能
如何使用 aws java SDK 从子网 ID 获取 VPC id?
使用 aws-sdk ruby gem 知道自己的实例 ID