Как использовать awscli внутри скрипта python?

я использую сервис aws ec2 с awscli. Теперь я хочу поместить все команды, которые я набираю в консоли, в скрипт python. Я вижу это, если напишу import awscli внутри скрипта python он отлично работает, но я не понимаю, как использовать его внутри скрипта. Например, как выполнить команды aws ec2 run-instances <arguments> внутри скрипта python после import awscli? Просто чтобы прояснить, я не ищу решение, подобное os.system('aws ec2 run-instances <arguments>'), Я ищу что-то вроде

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

3 ответов


CLI будет более подходящим для приглашения оболочки, для лучшего API python проверьте библиотеку boto. В этом примере показано, как запустить экземпляр: http://boto.readthedocs.org/en/latest/ec2_tut.html


вы можете сделать это с блестящим ш. Вы можете имитировать пакет python с sh, делая обертывание для вас.

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

Boto3 не имеет всего, что имеет cli, поэтому вам, возможно, придется использовать что-то из cli в скрипте один раз в blue moon. Например, я не могу найти аналог для aws deploy push в boto3, поэтому вот как я нажимаю на s3 с помощью cli из скрипта python. Хотя, по мнению Хулио, я использую бото для всего остального.

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