2013-03-13 4 views
1

Je cherchais une solution à mon problème depuis deux jours, mais je n'ai aucune idée de ce que je fais de mal avec une AMI privée comme une instance EC2 en utilisant boto . Je n'ai vu aucune page expliquant clairement comment le faire, ou quelqu'un avec mon problème.Exécuter une instance privée d'AMI ec2 depuis boto

Pour expliquer plus clairement mon problème:

  • J'ai créé un AMI personnalisé sur l'interface Web (installé certains paquets, a ajouté certains fichiers)

  • Maintenant, je voudrais automatiser les tâches Je suis sur l'AMI en utilisant un script Python sur mon ordinateur (et si possible, exécutez plusieurs instances de cette AMI spécifique)

  • J'ai écrit l'exemple de code suivant:

    import boto.ec2 
    
    conn = boto.ec2.connect_to_region("eu-west-1", 
        aws_access_key_id='myAKI',aws_secret_access_key='MySK') 
    
    print (conn) 
    
    reservation=conn.run_instances(image_id='ami-XXXXX', 
        instance_type='m1.small',key_name='MyKey') 
    

Quand je lance ce code, je reçois une erreur:

EC2Connection:ec2.eu-west-1.amazonaws.com 
Traceback (most recent call last): 
    File "./myfile.py", line 6, in <module> 
    reservation=conn.run_instances(image_id='ami- XXXX',instance_type='m1.small',key_name='MyKey') 
    File "/Library/Python/2.7/site-packages/boto-2.8.0-py2.7.egg/boto/ec2/connection.py", line 722, in run_instances 
verb='POST') 
    File "/Library/Python/2.7/site-packages/boto-2.8.0-py2.7.egg/boto/connection.py", line 1062, in get_object 
    raise self.ResponseError(response.status, response.reason, body) 
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request 
<?xml version="1.0" encoding="UTF-8"?> 
<Response><Errors><Error><Code>AuthFailure</Code><Message>Not authorized for images: [ami- XXXXXXX]</Message></Error></Errors><RequestID>6b653488-332d-4251-abb2-8e7e96e91891</RequestID> </Response> 

Est-ce que quelqu'un a une idée sur la façon de procéder? Je suppose qu'il y a peut-être un problème de connexion, mais je peux obtenir une liste d'images publiques. Je ne sais pas comment aller plus loin sur le débogage.

+0

pouvez-vous supprimer cette question? ce n'est pas pertinent et d'autres comment ça se passe dans la recherche google –

Répondre

1

Je pense qu'il essaie de vous dire que les informations d'identification de compte associées à votre connexion EC2 ne sont pas autorisées à accéder à l'AMI. Peut-être qu'il a été créé avec un compte différent?

+0

Finalement, j'ai trouvé le problème: Ma clé privée semble avoir expiré pour une raison inconnue: j'ai été autorisé se connecter au service mais pas à ma session. –

0

Vous devriez être en mesure de se connecter avec la clé et l'ID uniquement, sans préciser la région:

from boto.ec2.connection import EC2Connection 

connection = EC2Connection(<S3_ACCESSKEYID>, <S3_SECRETACCESSKEY>) 
print connection 

me donne:

EC2Connection:ec2.us-east-1.amazonaws.com 

espoir qui aide.

+0

Je dois spécifier la région, car je suis connecté par défaut sur ec2.us-east-1.amazonaws.com et mon AMI est en Irlande. mais merci –

+0

Je suis désolé, je vois que votre connexion a été établie, mais l'erreur est soulevée par la routine run_instances. –

+0

Vous devez probablement regarder dans les autorisations de lancement. De la documentation (http://boto.s3.amazonaws.com/ec2_tut.html): image.get_launch_permissions() –

Questions connexes