你好,我正在使用boto来启动ec2 spot实例。我在获取实例id后无法获得实例主机名。
从实例本身可以使用最简单的方式 "wget -q -O - http://169.254.169.254/latest/meta-data/instance-id" 来获取。
但是我正在寻找一种通过实例id获取元数据的方法。
有任何帮助吗?
谢谢。
你好,我正在使用boto来启动ec2 spot实例。我在获取实例id后无法获得实例主机名。
从实例本身可以使用最简单的方式 "wget -q -O - http://169.254.169.254/latest/meta-data/instance-id" 来获取。
但是我正在寻找一种通过实例id获取元数据的方法。
有任何帮助吗?
谢谢。
实例元数据仅在实例上可用,但您可以使用EC2 API获取有关实例的许多信息。因此,如果您有实例ID,则可以执行以下操作:
import boto.ec2
conn = boto.ec2.connect_to_region('us-east-1') # or whatever region you use
reservations = conn.get_all_instances(instance_ids='i-12345678')
instance = reservations[0].instances[0]
print(instance.public_dns_name)
将打印实例的公共DNS名称(即主机名)。
这符合您的要求吗?
wget -q -O - http://169.254.169.254/latest/meta-data/hostname"