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

Need to be able to edit a ZIP file in AWS Lambda

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

我理解这种挫败感,但压缩并重新上传您的代码或多或少是唯一的方法。幸运的是,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

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

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

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

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