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

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

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

Ответы

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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