继承了一个 AWS Lambda 项目。 lambdazip.sh 文件有什么作用?我需要将它上传到 AWS 中的什么位置?

Inherited an AWS Lambda project. What does lambdazip.sh file do & where in AWS do I need to upload it?

编辑:
所以 lambda 函数项目可以作为 zip 文件上传。
我认为这个 lambdazip.sh 是一个用于压缩项目的 shell 脚本。我一直在我的 MacOS 上通过 Finder 手动压缩项目。
在我 cd 到我的 /bin 之后,我 运行

sh lambdazip.zip

但我收到以下错误:

stephenstilwell@Stephens-MacBook-Air bin % sh lambdazip.sh
lambdazip.sh: line 6: cd: /lib/python2.7/site-packages/: No such file or directory
    zip warning: name not matched: pypdftk*

zip error: Nothing to do! (/Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip)
    zip warning: name not matched: bin

zip error: Nothing to do! (try: zip -r /Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip . -i bin)
    zip warning: name not matched: boost*
    zip warning: name not matched: pdf_surveys

zip error: Nothing to do! (/Users/stephenstilwell/Downloads/cl_boost-pdfgen-1.3.3-master/bin/dist/cl-boost.zip)

所以我得到了一个压缩文件,其中没有关于如何处理代码库的真正说明或文档。
我的任务是让这个项目全部在 AWS 上设置。
使用的 AWS 服务将是 Lambda、S3、Api 网关、简单电子邮件服务。

据我目前所知,我认为这个 .sh 文件可能已用于在部署到 AWS Lambda 之前在本地测试 lambda 函数,但我不确定。

这个文件需要上传到lambda函数吗?
它属于 Lambda 层吗?
它的用途是什么,过去的开发人员为什么要使用它?

lambdazip.sh

#!/bin/bash
PYTHON_PATH=$VIRTUAL_ENV/..
BASE_PATH=$PWD


cd $VIRTUAL_ENV/lib/python2.7/site-packages/
zip -x "*pyc" -r9 $BASE_PATH/dist/cl-boost.zip pypdftk*

cd $BASE_PATH
zip -r $BASE_PATH/dist/cl-boost.zip bin

cd $BASE_PATH
zip -x "*pyc" -r9 $BASE_PATH/dist/cl-boost.zip boost* pdf_surveys

它看起来像是 AWS Lambda 函数创建的助手。

如果 Lambda 仅使用核心 Python 库,则可以 copy/paste 它的代码到 AWS Lambda Web UI.

中的代码编辑器

但是如果你需要一些额外的依赖,你有两个选择:

  1. 将依赖项放入所谓的 AWS Lamda 层(然后您可以通过 UI copy/paste 函数代码,此外,在 Lambda 设置中,您必须将层连接到函数)
  2. 将所有内容(函数及其依赖项)放入 ZIP 存档并将其作为 Lambda 函数上传

如果您选择第二个选项,您将无法在可视化编辑器中调整代码(这在调试期间可能很有用)。

我建议 lambdazip.sh 使用函数和依赖项创建 ZIP 文件。

据我所知lambdazip.sh用于从项目的虚拟环境和项目的基本路径中打包依赖项。

您可能需要做的是为项目启用 VIRTUALENV,方法是执行类似 python2.7 -m virtualenv 的操作或执行以下操作:。之后,您可能希望使用 pip 在您的虚拟环境中安装依赖项。之后您应该能够 运行 lambdazip.sh 成功。