如何使用 boto 获取 运行 EC2 实例的自身实例 ID?

How to get self Instance Id of the running EC2 instance using boto?

使用 python boto API(不是 Boto3),我如何获取用户中 CPU 运行 脚本的自实例 ID-数据.

使用boto从本地元数据服务中获取实例ID,如下:

import boto.utils
meta = boto.utils.get_instance_metadata()
id = meta['instance-id']
print('instance ID:', id)

注意boto3 does not include this capability。一种选择是简单地使用原生的urllib包直接从元数据服务中查询,如下:

# For python v2
import urllib2
id = urllib2.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read()
print('instance ID:', id)

# For python v3
import urllib.request
id = urllib.request.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read().decode()
print('instance ID:', id)

或者,您可以 pip 安装并使用 adamchainz/ec2-metadata,如下所示:

from ec2_metadata import ec2_metadata
print('region:', ec2_metadata.region)
print('instance ID:', ec2_metadata.instance_id)