Ответ 1
CLI больше подходит для командной строки, для лучшего API-интерфейса python проверяет библиотеку boto. В этом примере показано, как запустить экземпляр: http://boto.readthedocs.org/en/latest/ec2_tut.html
Я использую 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>)
CLI больше подходит для командной строки, для лучшего API-интерфейса python проверяет библиотеку boto. В этом примере показано, как запустить экземпляр: http://boto.readthedocs.org/en/latest/ec2_tut.html
Вы можете сделать это с блестящим пакетом sh. Вы могли бы имитировать пакет python с sh wrap wrapping для вас.
import sh
s3 = sh.bash.bake("aws s3")
s3.put("file","s3n://bucket/file")
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