2016-08-09 174 views
-1

Ich bin sehr Neuling mit AWS.So erhalten Sie öffentliche IP-Adresse von AWS mit Ruby SDK

Ich möchte die öffentliche IP-Adresse von Ruby SDK erhalten, aber nicht finden, wie man es bekommt.

require 'aws-sdk'

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

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

mit diesen beiden Befehl, bekomme ich nur Status und Code.

Wie bekomme ich die öffentliche IP-Adresse, da sie sich normalerweise ändert, wenn wir die Instanz herunterfahren?

Vielen Dank im Voraus

+0

vielleicht ist das hässlich, aber Sie können eine Locke Anruf tun. so was; curl http://169.254.169.254/latest/meta-data/public-ipv4 –

+0

Danke für die Antwort. ja mit dieser Lösung können wir eine öffentliche IP-Adresse erhalten. Ich versuche, einen programmatischen Weg zu verwenden, um damit umzugehen. Ich kann in Java SDK finden, kann aber nicht mit Ruby SDK finden. – Vtanathip

Antwort

1

Sobald Sie Ihren Instance Gegenstand hat, in Ihrem Fall der i Variable, verwenden Sie das Attribut public_ip_address die öffentliche IP-Adresse Ihrer EC2-Instanz zu verweisen.

Beispiel:

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

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

+0

Danke. das ist Newbie-Fehler. Ich verliere verloren, wenn ich "I.state" drucke und sah, dass der Typ INstanceState ist, also denke ich, dass es keine öffentliche IP-Adresse hatte. dies hilft mir viel zu klären, wie es funktioniert Prost – Vtanathip