【发布时间】:2017-09-21 21:51:00
【问题描述】:
我想在运行时版本为 Python 3.6 的 AWS Lambda 函数中调用 aws s3 sync 命令。我该怎么做?
为什么不直接使用附带的 boto3 SDK?
- boto3 does not have an equivalent to the
synccommand - boto3 does not automatically find MIME types(“如果您不向 ExtraArgs 提供 ContentType 的任何内容,则最终内容类型将始终为 binary/octet-stream。”)
- aws cli does automatically find MIME types ("默认情况下,上传文件时会猜测文件的 mime 类型")
对于我的用例,我认为它在架构和财务上都有意义,但我对替代方案持开放态度。 My Lambda function:
- 下载 Git 和 Hugo
- 下载my repository
- 运行 Hugo 来生成我的小型(
- 将生成的文件上传到s3
现在,我可以在大约 1-2 秒内在 1536 MB(最强大)的 Lambda 函数上完成上述所有操作。此功能仅在我提交对我的网站的更改时触发,因此运行成本很低。
也许它已经安装在 Lambda 环境中?
在撰写本文时,还没有。
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda aws-cli