web-dev-qa-db-fra.com

Comment utiliser awscli dans le script python?

J'utilise le service aws ec2 avec awscli. Maintenant, je veux mettre toutes les commandes que je tape dans la console dans un script python. Je vois que si j'écris import awscli Dans un python = script ça marche bien mais je ne comprends pas comment l'utiliser dans le script. Par exemple comment exécuter les commandes aws ec2 run-instances <arguments> dans le script python après import awscli? Juste pour être clair, je ne cherche pas une solution comme os.system('aws ec2 run-instances <arguments>'), je cherche quelque chose comme

import awscli
awscli.ec2_run-instances(<arguments>)
23
e271p314

L'interface CLI serait plus adaptée à l'invite du shell, pour une meilleure python API, vérifiez la bibliothèque boto. Cet exemple montre comment lancer une instance: http: // boto. readthedocs.org/en/latest/ec2_tut.html

14
faermanj

Vous pouvez le faire avec le package brillant sh . Vous pouvez imiter python package avec sh faisant le wrapping pour vous.

import sh
s3 = sh.bash.bake("aws s3")
s3.put("file","s3n://bucket/file")
14
smokeny

Boto3 n'a pas tout ce que le cli a donc vous devrez peut-être utiliser quelque chose du cli dans un script une fois dans une lune bleue. Je ne trouve pas d'analogue pour aws déployer Push dans boto3 par exemple alors voici comment je pousse vers s3 avec le cli à partir d'un script python. Bien qu'au point de Julio, j'utilise boto pour tout autre.

import subprocess

cmd='aws deploy Push --application-name SomeApp --s3-location  s3://bucket/Deploy/db_schema.Zip --ignore-hidden-files' 
Push=subprocess.Popen(cmd, Shell=True, stdout = subprocess.PIPE)
print Push.returncode
7
ddtraveller