J'ai utilisé boto pour interagir avec S3 sans problème, mais maintenant j'essaye de me connecter à AWS Support API pour récupérer des informations sur les tickets ouverts, les résultats du conseiller de confiance, etc. Il semble que la bibliothèque boto a différentes méthodes de connexion pour chaque service AWS? Par exemple, avec S3 est:Utilisation de Python Boto avec AWS Support API
conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
Selon les boto docs, les éléments suivants doivent travailler pour se connecter à l'API AWS Support:
>>> from boto.support.connection import SupportConnection
>>> conn = SupportConnection('<aws access key>', '<aws secret key>')
Cependant, il y a quelques problèmes que je vois après avoir creusé à travers le code source. Premièrement, boto.support.connection n'existe pas réellement. boto.connection le fait, mais il ne contient pas de classe SupportConnection. boto.support.layer1 existe et possède la classe SupportConnection, mais n'accepte pas les arguments clés comme le suggère la documentation. Au lieu de cela, il faut 1 argument - un objet AWSQueryConnection. Cette classe est définie dans boto.connection. AWSQueryConnection prend 1 argument - un objet AWSAuthConnection, classe également définie dans boto.connection. Enfin, AWSAuthConnection prend un objet générique, avec les exigences définies dans initialisation comme:
class AWSAuthConnection(object):
def __init__(self, host, aws_access_key_id=None,
aws_secret_access_key=None,
is_secure=True, port=None, proxy=None, proxy_port=None,
proxy_user=None, proxy_pass=None, debug=0,
https_connection_factory=None, path='/',
provider='aws', security_token=None,
suppress_consec_slashes=True,
validate_certs=True, profile_name=None):
Alors, pour le plaisir, j'ai essayé de créer une AWSAuthConnection par touches passant, suivi par AWSQueryConnection (awsauth), suivi par SupportConnection (awsquery), sans chance. C'était dans un script. Mon dernier point d'intérêt est que, avec mes clés définies dans un fichier .boto dans mon répertoire de base, et en exécutant l'interpréteur python à partir de la ligne de commande, je peux faire un import direct et appel à SupportConnection() (sans arguments) et il fonctionne. Il s'agit clairement de récupérer mes clés du fichier .boto et de les consommer, mais je n'ai pas analysé chaque ligne de code source pour comprendre comment, et franchement, j'espère ne pas le faire. En bref, j'espère que quelqu'un connaîtra bien boto et se connectera à l'API AWS autre que S3 (la majeure partie du matériel qui existe via google) pour m'aider à résoudre d'autres problèmes.
Question similaire avec quelques conseils: http://stackoverflow.com/a/21345540/346478. En général, les informations d'identification sont gérées de la même manière pour S3 et les autres services. –