2015-07-25 26 views
25

In boto regolare 2.38 ho usato per accedere ai metadati istanza (ad esempio ottenere pila-nome attuale), attraverso di Botoboto3 equivalente a boto.utils.get_instance_metadata()?

boto.utils.get_instance_metadata() 

Esiste un equivalente in boto3, o ho bisogno di andare all'indirizzo http diretta livello inferiore recuperare i metadati sull'istanza in esecuzione?

risposta

14

No, ancora nessun equivalente in boto3, basta colpirlo da solo.
Hanno una richiesta di funzionalità aperta per questo https://github.com/boto/boto3/issues/313 che fa riferimento a questa domanda.

Quanto a soluzioni alternative,
è possibile continuare a utilizzare boto.utils o utilizzare urllib/urllib2 di fare le richieste HTTP manualmente cioè.

# 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() 

vedono What is the quickest way to HTTP GET in Python? per una rapida introduzione sul urllib e http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-data-categories per la struttura URI del servizio metadati.

+2

è questo * ancora * vero ?! siiiiiiigh – dwanderson

+0

@dwanderson Sfortunatamente si! – jimy