Question boto3 équivalent à boto.utils.get_instance_metadata ()?


Dans boto 2.38 ordinaire, j'accédais à des métadonnées d'instance (par exemple, obtenir le nom de la pile actuelle), à ​​travers des boto

boto.utils.get_instance_metadata()

Existe-t-il un équivalent en boto3 ou dois-je aller à l'adresse http directe du niveau inférieur pour récupérer les métadonnées sur l'instance en cours d'exécution?


26
2017-07-25 20:29


origine


Réponses:


Non, toujours pas d'équivalent en boto3, il suffit de toucher cet écart moi-même.
Ils ont une demande de fonctionnalité ouverte pour cela https://github.com/boto/boto3/issues/313 qui référence cette question.

Comme pour les solutions de contournement,
vous pouvez continuer à utiliser boto.utils Ou utiliser urllib/urllib2 faire les requêtes HTTP manuellement

# Python2
import urllib2
instanceid = urllib2.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read()

# Python3
import urllib.request
instanceid = urllib.request.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read().decode()

voir Quel est le moyen le plus rapide de HTTP GET en Python? pour une introduction rapide sur urllib et http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-data-categories pour la structure URI du service de métadonnées.


15
2017-11-16 11:05