我不清楚这个功能的好处(我没有找到任何好的文档):
谢谢。
编辑:
我被问到“为什么你想要多个Lambda函数的相同代码?”
因为我将AWS Lambda与AWS API Gateway一起使用,所以我有一个项目,我的所有处理程序都是我的RESTful API的实际“端点”。
如果某个AWS人员阅读此消息,那么拥有一种批量更新功能可以很好地通过一次点击在S3上用1个zip文件更新一组选定的lambda函数(甚至“自动更新”功能,可检测文件何时更新;-))
假设您在一个项目中有50个处理程序,然后您修改了影响所有这些项目的全局内容,目前您必须通过所有lambda函数并手动更新zip文件...
答案 0 :(得分:3)
为了回答我认为问题的本质,AWS允许您使用S3作为Lambda zip文件的来源,因为有时通过浏览器上传大文件可能会超时。此外,将代码存储在S3上允许您集中存储它,而不是存储在计算机上,我确信它还有一个CodeCommit接口。
使用将代码上传到Lambda的S3方法还允许您上传较大的文件(AWS通过Web浏览器上传时有10MB的限制。)
答案 1 :(得分:3)
要添加到其他人的用例,能够从S3更新Lambda函数在自动部署/ CI过程中非常有用。
New Deployment Options for AWS Lambda下的说明包括一个简单的Lambda函数,可用于将ZIP文件从S3复制到Lambda本身,以及在上传新文件时触发其执行的说明。
作为开发和部署的简单示例,我目前的工作流程是:
我在本地计算机上更新了我的Node lambda应用程序,并将git commit
更新到远程存储库。
Jenkins实例选择提交,下拉相应的文件,将它们添加到ZIP文件中并将其上传到S3存储桶。
然后LambdaDeployment功能会自动为我部署这个新版本,而我甚至不需要离开我的开发环境。
答案 2 :(得分:2)
代码从zip导入Lambda。这与通过Lambda控制台或API上传zip文件完全相同。但是,如果您的Lambda函数很大(他们说> 10MB),他们建议上传到S3,然后使用S3导入功能,因为这比直接从Lambda页面上传更稳定。除此之外,没有任何好处。
所以问题1:不。为什么你想要多个Lambda函数使用相同的代码呢?
问题2:如果您覆盖zip,则不会更新Lambda函数代码。
答案 3 :(得分:2)
#!/bin/bash
cd /your/workspace
#zips up the new code
zip -FSr yourzipfile.zip . -x *.git* *bin/\* *.zip
#Updates function code of lambda and pushes new zip file to s3bucket for cloudformation lambda:codeuri source
aws lambda update-function-code --function-name arn:aws:lambda:us-west-2:YOURID:function:YOURFUNCTIONNAME --zip-file file://yourzipfile.zip
取决于aws-cli安装和aws配置文件设置
aws --profile yourProfileName configure