我使用基于 Web 的编辑器创建了几个 Lambda 函数。到目前为止,一切都很好。我现在想开始用模块扩展那些(例如 Q 代表承诺)。我不知道如何将模块输出到 Lambda,以便它们可以被我的函数使用。
我已经通读了这个,但它似乎涉及设置 EC2 并从那里运行 Lambda 函数。创建函数时有一种上传 zip 的机制,但这似乎涉及发送本地开发的函数。由于我在基于 Web 的编辑器中工作,这似乎是一个奇怪的工作流程。
如何简单地部署一些模块以在我的 Lambda 函数中使用?
不上传文件就无法加载 NPM 模块.zip,但实际上可以将此过程简化为两个快速命令行。
.zip
就是这样:
将您的 Lambda 函数文件放在单独的目录中。这是因为您npm在本地为 Lambda 安装包,并且您希望能够隔离和测试您将上传到 Lambda 的内容。
npm
npm install packageName当您在步骤 #1 中创建的单独 Lambda 目录中时,在本地安装您的 NPM 包。
npm install packageName
确保您的函数在本地运行时正常工作:(node lambdaFunc.js您可以简单地注释掉代码中的两export.handler行,以使您的代码在本地与 Node 一起运行)。
node lambdaFunc.js
export.handler
转到 Lambda 的目录并压缩 内容 ,确保 不 包含目录本身。
zip -r lambdaFunc.zip .
如果你已经aws-cli安装了,如果你想让你的生活更轻松,我建议你安装它,你现在可以输入这个命令:
aws-cli
aws lambda update-function-code --function-name lambdaFunc \
–zip-file fileb://~/path/to/your/lambdaFunc.zip
(上面的 lambdaFunc 部分没有引号,以防您像我一样想知道)
现在您可以在 Lambda 控制台中单击 测试。
我建议为上述两个命令添加一个短别名。这是我的更长的 Lambda 更新命令:
alias up="aws lambda update-function-code --function-name lambdaFunc \
–zip-file fileb://~/path/to/your/lambdaFunc.zip”