Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python脚本中使用awscli?_Python_Amazon Web Services_Amazon Ec2_Aws Cli - Fatal编程技术网

如何在python脚本中使用awscli?

如何在python脚本中使用awscli?,python,amazon-web-services,amazon-ec2,aws-cli,Python,Amazon Web Services,Amazon Ec2,Aws Cli,我正在使用awscli的aws ec2服务。现在,我想将我在控制台中键入的所有命令放入python脚本中。我发现,如果我在python脚本中编写import awscli,它可以正常工作,但我不知道如何在脚本中使用它。例如,在导入awscli之后,如何在python脚本中执行命令aws ec2 run instances?我只是想说清楚,我不是在寻找像os.system('aws ec2运行实例')这样的解决方案,我是在寻找像这样的解决方案 import awscli awscli.ec2_ru

我正在使用awscli的aws ec2服务。现在,我想将我在控制台中键入的所有命令放入python脚本中。我发现,如果我在python脚本中编写
import awscli
,它可以正常工作,但我不知道如何在脚本中使用它。例如,在导入awscli之后,如何在python脚本中执行命令
aws ec2 run instances
?我只是想说清楚,我不是在寻找像
os.system('aws ec2运行实例')
这样的解决方案,我是在寻找像这样的解决方案

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

CLI更适合shell提示符,要获得更好的python API,请查看boto库。此示例演示如何启动实例:

您可以使用brilliant软件包来完成。 您可以用sh来模拟python包,为您进行包装

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

Boto3并没有cli所拥有的一切,因此您可能必须在脚本中使用cli中的某些内容,这是千载难逢的。例如,我找不到aws deploy push-in boto3的模拟版本,所以下面是我如何从python脚本使用cli推送到s3的。虽然在胡里奥看来,我在其他方面都使用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

好的,您可以使用python脚本中的
子流程运行
awscli
命令。 例如,假设获取
s3
存储桶列表。 那么


希望能为您提供帮助。

这个
sh
软件包肯定很有趣。谢谢你的指点。但它(将在我的*nix平台上使用该软件包)非常棒。我完全不擅长bashshell脚本。我赶时间。为了胜利。格雷西亚斯!除了boto库不能做一些awscli库可以做的事情。e、 g.s3同步。
import subprocess

push=subprocess.call(['aws', 's3', 'ls', '--recursive', '--human-readable', '--summarize'])
import subprocess

push=subprocess.run(['aws', 's3', 'ls', '--recursive', '--human-readable', '--summarize'])