Как получить текущий идентификатор экземпляра из 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)