Il semble que ce soit un SDK pour Python qui exploite AWS. (Je veux un nom de code pour les SDK autres que Python
http://aws.amazon.com/jp/sdkforpython/
Il semble facile d'entrer avec la commande pip
$ sudo yum install python-pip
$ sudo pip install boto
Je ne veux pas écrire de code solide, je le définis donc dans le fichier de configuration. Apparemment, il semble chercher dans l'ordre "/etc/boto.cfg", "~ / .boto", et cette fois je veux le garder pour chaque utilisateur, alors définissez-le dans ~ / .boto selon le format suivant
[Credentials]
aws_access_key_id = <your access key>
aws_secret_access_key = <your secret key>
https://code.google.com/p/boto/wiki/BotoConfig
Je n'ai pas pu le trouver dans la documentation, mais quand je regarde l'implémentation de boto, il vérifie si "AWS_CREDENTIAL_FILE" est défini dans la variable d'environnement, et s'il est défini, la logique donne la priorité à ce paramètre.
https://github.com/boto/boto/blob/b9dbaad430fc35160d86fb921c4c1f75d66b6ddf/boto/pyami/config.py#L66-L77
Initialement, lors de l'importation de boto, une erreur s'est produite dans la classe ConfigPaser et elle est devenue "Eh ???". La cause était que l'en-tête (première ligne) du fichier défini dans AWS_CREDENTIAL_FILE contenait la chaîne "==========". Je ne pense pas que quiconque souffre de la même erreur, mais pour référence. (C'est un mystère pourquoi un tel en-tête a été utilisé en premier lieu.
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)
Vous pouvez maintenant obtenir les informations d'instance EC2 avec le préfixe «production» comme nom d'instance de la région de Tokyo.
Recommended Posts