Как использовать 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