Как получить текущий идентификатор экземпляра из boto3?

Существует ли эквивалент

curl http://169.254.169.254/latest/meta-data/instance-id

с boto3 для получения текущего экземпляра экземпляра экземпляра экземпляра в python?

Ответ 1

Нет апи для него, нет. Существует InstanceMetadataFetcher, но в настоящее время он используется только для получения роли IAM для аутентификации.

Любой тип GET должен служить вам. Botocore использует библиотеку python requests, которая довольно приятна.

import requests
response = requests.get('http://169.254.169.254/latest/meta-data/instance-id')
instance_id = response.text

Ответ 2

Все еще нет boto3 API для этого. Но если ваш текущий экземпляр - система Linux, вы можете использовать следующий код python3, чтобы получить instance_id:

import subprocess

cmd='''set -o pipefail && sudo grep instance-id /run/cloud-init/instance-data.json | head -1 | sed 's/.*\"i-/i-/g' | sed 's/\",//g\''''    
status, instance_id = subprocess.getstatusoutput(cmd)
print(status, instance_id)