Es scheint ein SDK für Python zu sein, das AWS betreibt. (Ich möchte einen Codenamen für andere SDKs als Python
http://aws.amazon.com/jp/sdkforpython/
Die Eingabe mit dem Befehl pip scheint einfach zu sein
$ sudo yum install python-pip
$ sudo pip install boto
Ich möchte keinen festen Code schreiben, deshalb definiere ich ihn in der Einstellungsdatei. Anscheinend scheint es in der Reihenfolge "/etc/boto.cfg", "~ / .boto" zu suchen, und dieses Mal möchte ich es für jeden Benutzer behalten, also definiere es in ~ / .boto gemäß dem folgenden Format
[Credentials]
aws_access_key_id = <your access key>
aws_secret_access_key = <your secret key>
https://code.google.com/p/boto/wiki/BotoConfig
Ich konnte es nicht in der Dokumentation finden, aber wenn ich mir die Boto-Implementierung anschaue, prüft es, ob "AWS_CREDENTIAL_FILE" in der Umgebungsvariablen definiert ist, und wenn es definiert ist, gibt die Logik dieser Einstellung Priorität.
https://github.com/boto/boto/blob/b9dbaad430fc35160d86fb921c4c1f75d66b6ddf/boto/pyami/config.py#L66-L77
Beim Importieren von Boto ist zunächst ein Fehler in der ConfigPaser-Klasse aufgetreten, der zu "Eh ???" wurde. Die Ursache war, dass der Header (erste Zeile) der in AWS_CREDENTIAL_FILE festgelegten Datei die Zeichenfolge "==========" enthielt. Ich glaube nicht, dass jemand unter dem gleichen Fehler leidet, aber als Referenz. (Es ist ein Rätsel, warum ein solcher Header überhaupt verwendet wurde.
import boto
import boto.ec2
from boto.ec2.connection import EC2Connection
from boto.ec2.regioninfo import RegionInfo
import re
def get_ec2_instances(region_end_point, re_pt):
region = RegionInfo(endpoint = region_end_point)
ec2_connection = boto.ec2.connection.EC2Connection(region = region)
result = []
instances = [i for r in ec2_connection.get_all_instances() for i in r.instances]
for i in instances:
if re_pt.match(i.tags['Name']):
result.append(i)
return result
if __name__ == "__main__":
re_pt = re.compile('production')
ec2_instance_list = get_ec2_instances('ec2.ap-northeast-1.amazonaws.com', re_pt)
print(ec2_instance_list)
Jetzt können Sie die EC2-Instanzinformationen mit dem Präfix "Produktion" als Instanznamen aus der Region Tokio abrufen.
Recommended Posts