需要能够在AWS Lambda中编辑ZIP文件

时间:2018-06-07 01:41:35

标签: node.js aws-lambda aws-sdk alexa alexa-skills-kit

我需要开发一个Alexa技能,对于Lambda函数,我在所需的文件夹结构中上传了一个zip文件(大约30 MB因为ALEXA SDK大约30 MB)(结构是正确的,因为我测试了技能)。但我无法在内联代码编辑器中查看该文件。如果我需要对index.js进行任何更改,我将不得不在本地编辑器中打开它(压缩文件夹中的所有文件并再次上传)。我必须对文件的每一个小改动都这样做,因为我无法在内联代码编辑器中打开文件并直接保存它。任何帮助都是非常值得赞赏的。我不能继续重新上传整个zip以测试小的变化,因为这是很多工作并消耗了大量的时间.TIA

2 个答案:

答案 0 :(得分:1)

我理解挫折感,但是压缩和重新上传代码或多或少是实现此目的的唯一方法。幸运的是,AWS Command Line Interface exists solely for this reason

如果您的计算机上有CLI,则根据您的开发环境,您可以简单地将压缩和lambda更新放入脚本中。在基于unix的系统上,它可能如下所示:

zip -r my-lambda-code.zip ./my-lambda-directory
aws lambda update-function-code \
    --function-name my-lambda-function \
    --zip-file fileb://path/to/my-lambda-code.zip

然后,无论何时进行代码更改,只需运行新脚本并观察魔法发生!

Reference

答案 1 :(得分:0)

我会在AWS存储桶上进行zip编辑。会是这样的:

定义一个名为update_files的辅助lambda,使其使用python zip库,并有效地运行以下命令: zip -r mylambda.zip *上的s3://buckets/uploadfolder(mylambda.zip也位于存储桶中)。然后,您可以准备一个脚本来同步该文件夹,运行update_files并将zip文件上传到lambda。

这样,您所需要做的就是更新文件夹中的文件,甚至可以上传单个文件(在大多数情况下是需要的)。

当然,您应该在所有这些方面(s3权限,您的权限等)中考虑安全性。