J'ai le code suivant en utilisant boto.ec2 pour me connecter à Amazon EC2 à partir de python, mais j'ai du mal à gérer les fichiers .pem. Si je passe None à l'appel run_instances comme nom de clé, je peux créer des instances sans problème. Toutefois, si je passe un nom clé (si je crée à l'aide de la console, ou manuellement comme ci-dessous), je reçois systématiquement l'erreur suivante lorsque je tente d'exécuter une instanceCréation d'instances EC2 avec des paires de clés dans Boto2
EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>InvalidKeyPair.NotFound</Code><Message>The key pair 'newkey.pem' does not exist</Message></Error></Errors><RequestID>e4da5b1e-a8ec-42fb-b3ce-20aa883a0615</RequestID></Response>
Quand je vérifie sur la console pour la région appropriée, la clé est en effet créée (elle est également créée dans mon répertoire personnel, mais je reçois toujours la clé n'existe pas d'erreur)
Des idées?
Ci-dessous mon actuel code de test Python
try:
key_res = conn.get_all_key_pairs(keynames=[key])[0]
print key_res
print "Key pair found"
except boto.exception.EC2ResponseError, e:
print e
if e.code == 'InvalidKeyPair.NotFound':
print 'Creating keypair: %s' % key
# Create an SSH key to use when logging into instances.
key_aws = conn.create_key_pair(key)
# AWS will store the public key but the private key is
# generated and returned and needs to be stored locally.
# The save method will also chmod the file to protect
# your private key.
key_aws.save(".")
else:
raise
print "Creating instances"
try:
conn.run_instances(ami[c.region.name], key_name=key,instance_type=instance,security_groups=[security_group])
except Exception as e:
print e
print "Failed to create instance in " + c.region.name
Je semble me souvenir des problèmes avec les noms de clés se terminant par '.pem', en essayant de supprimer le' .pem' et juste se référer à la clé comme 'newkey'. – AChampion
Je passe dans "newkey" seulement l'erreur renvoie "newkey.pem" – user1018513