web-dev-qa-db-ja.com

pythonスクリプト内でawscliを使用する方法?

Awscliでaws ec2サービスを使用しています。次に、コンソールに入力するすべてのコマンドをpythonスクリプトに入れたいと思います。 pythonスクリプト内で_import awscli_と書くと問題なく動作しますが、スクリプト内でそれを使用する方法がわかりません。たとえば、_aws ec2 run-instances <arguments>_の後にpythonスクリプト内でコマンド_import awscli_を実行するにはどうすればよいですか?明確にするために、os.system('aws ec2 run-instances <arguments>')のようなソリューションを探しているのではなく、次のようなものを探しています

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

CLIはシェルプロンプトにより適しています。より良いpython API、botoライブラリを確認してください。この例は、インスタンスを起動する方法を示しています。 http:// boto。 readthedocs.org/en/latest/ec2_tut.html

14
faermanj

素晴らしい sh パッケージでできます。 pythonパッケージでshをラッピングしてパッケージを模倣することができます。

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

Boto3にはcliのすべてが含まれているわけではないため、blue moonでスクリプトのcliを使用する必要がある場合があります。たとえば、boto3でaws deploy Pushのアナログを見つけることができないため、pythonスクリプトからcliを使用してs3にプッシュする方法を示します。そうしないと。

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