【发布时间】:2015-08-11 19:06:28
【问题描述】:
在 AWS 上的 EB 工作人员中,我想确定代码正在运行的实例。 我正在使用 Boto 和 Python。 我知道我可以列出所有实例,但我怎么知道这个工作人员正在运行的实例? 谢谢!
【问题讨论】:
标签: python amazon-web-services amazon-elastic-beanstalk boto
在 AWS 上的 EB 工作人员中,我想确定代码正在运行的实例。 我正在使用 Boto 和 Python。 我知道我可以列出所有实例,但我怎么知道这个工作人员正在运行的实例? 谢谢!
【问题讨论】:
标签: python amazon-web-services amazon-elastic-beanstalk boto
使用或依赖于 boto 无济于事。更简单的方法是依赖EC2 Meta-Data
您可以从您的实例执行 curl 或 http-get 到 URL - http://169.254.169.254/latest/meta-data/ 并获取数据。
要获取实例 ID - 执行 curl 到 http://169.254.169.254/latest/meta-data/instance-id
您可以从 Meta-Data 获得的其他详细信息是
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
instance-type
kernel-id
local-hostname
local-ipv4
mac
network/
placement/
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/
更多信息 - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
【讨论】:
boto.utils 模块提供了一个名为get_instance_metadata 的函数,用于从元数据服务中检索数据。如果服务器最初没有响应,它还会处理重试。