【问题标题】:Need to be able to edit a ZIP file in AWS Lambda需要能够在 AWS Lambda 中编辑 ZIP 文件
【发布时间】:2018-11-16 19:34:13
【问题描述】:

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

【问题讨论】:

  • 应该没那么大。试试这个:s3.amazonaws.com/findcontestbucket/node_modules.zip
  • 是的,我知道它不是那么大,但是如果我需要安装请求或任何其他模块,我将不得不执行 npm install ,然后它的大小会达到 30+ mb,因为alexa sdk
  • 您可以在本地机器上测试您的 lambda。当您觉得一切正常时,您可以上传您的代码。这样就不会那么麻烦了。
  • 这确实是 AWS 团队的糟糕设计。在上传相同的东西上浪费了很多宝贵的时间。一个人应该代表它拥有一台虚拟机并在之前对其进行测试,但仅限于大型项目。
  • 即使每周上传一个版本,仍然会浪费他一个小时。可笑。

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


【解决方案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

【讨论】:

  • 嘿,伙计,我按照您给我的参考链接中的完全相同的步骤操作。我收到以下错误:解析参数“--zip-file”时出错:无法加载参数文件fileb://index.zip:[Errno 2] 没有这样的文件或目录:“index.zip”
  • @AashrithChilkepalli 您需要提供完整路径。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多