繁体   English   中英

如何在AWS Lambda Python 3.6环境中运行aws-cli?

[英]How can I run the aws-cli in an AWS Lambda Python 3.6 environment?

我想从运行时版本为Python 3.6的AWS Lambda函数中调用aws s3 sync命令。 我怎样才能做到这一点?

您为什么不只使用随附的boto3 SDK?

从结构上讲,这没有任何意义!

对于我的用例,我认为在架构和财务上都有意义,但是我愿意接受其他选择。 我的Lambda函数

  • 下载Git和Hugo
  • 下载我的资料库
  • 运行Hugo生成我的小型网站(少于100页)
  • 将生成的文件上传到s3

现在,我可以在1-2秒内用1536 MB(最强大的Lambda函数)完成上述所有操作。 仅当我将更改提交到网站时才会触发此功能,因此运行成本不高。

也许它已经安装在Lambda环境中了?

在撰写本文时,事实并非如此。

通过在AWS Lambda函数中运行aws-cli命令

import subprocess
command = ["./aws", "s3", "sync", "--acl", "public-read", "--delete",
           source_dir + "/", "s3://" + to_bucket + "/"]
print(subprocess.check_output(command, stderr=subprocess.STDOUT))

默认情况下,Lambda上未安装AWS CLI,因此您必须将其包括在部署中。 尽管在Python 3.6 Lambda环境中运行,Python 2.7在该环境中仍然可用,因此本文中概述的方法将继续有效。

要在Lambda系统上进行实验,请看lambdash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM