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

时间:2017-04-25 03:45:16

标签: python-3.x amazon-web-services aws-lambda aws-cli

我想在AWS Lambda函数中使用Python 3.6的运行时版本调用aws s3 sync命令。我怎么能这样做?

  

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

  

Architecturally this doesn't make sense!

对于我的用例,我认为它在架构和财务上都有道理,但我对其他选择持开放态度。 My Lambda function

  • 下载Git和Hugo
  • 下载my repository
  • 运行Hugo来生成我的小(<100页)网站
  • 将生成的文件上传到s3

现在,我能够在大约1-2秒内在1536 MB(最强大的)Lambda功能上完成上述所有操作。只有在我对网站进行更改时才会触发此功能,因此运行成本低廉。

  

可能它已经安装在Lambda环境中了吗?

截至撰写本文时,情况并非如此。

1 个答案:

答案 0 :(得分:5)

来自Running aws-cli Commands Inside An AWS Lambda Function

Map<String, Object> eventMap;
for(DataSnapshot da :dataSnapshot.getChildren())
{
    if (da.getValue() instanceof Map) {
        eventMap = (HashMap<String, Object>)
                da.getValue();
        Map<String, Object> eventMap = weekMap;
        WeekViewEvent event = new WeekViewEvent();
    }
}

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

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