小编典典

如何在 AWS Lambda 中加载 npm 模块?

all

我使用基于 Web 的编辑器创建了几个 Lambda 函数。到目前为止,一切都很好。我现在想开始用模块扩展那些(例如 Q
代表承诺)。我不知道如何将模块输出到 Lambda,以便它们可以被我的函数使用。

我已经通读了这个,但它似乎涉及设置 EC2 并从那里运行 Lambda 函数。创建函数时有一种上传 zip
的机制,但这似乎涉及发送本地开发的函数。由于我在基于 Web 的编辑器中工作,这似乎是一个奇怪的工作流程。

如何简单地部署一些模块以在我的 Lambda 函数中使用?


阅读 102

收藏
2022-06-24

共1个答案

小编典典

不上传文件就无法加载 NPM 模块.zip,但实际上可以将此过程简化为两个快速命令行。

就是这样:

  1. 将您的 Lambda 函数文件放在单独的目录中。这是因为您npm在本地为 Lambda 安装包,并且您希望能够隔离和测试您将上传到 Lambda 的内容。

  2. npm install packageName当您在步骤 #1 中创建的单独 Lambda 目录中时,在本地安装您的 NPM 包。

  3. 确保您的函数在本地运行时正常工作:(node lambdaFunc.js您可以简单地注释掉代码中的两export.handler行,以使您的代码在本地与 Node 一起运行)。

  4. 转到 Lambda 的目录并压缩 内容 ,确保 包含目录本身。

    zip -r lambdaFunc.zip .
    
  5. 如果你已经aws-cli安装了,如果你想让你的生活更轻松,我建议你安装它,你现在可以输入这个命令:

    aws lambda update-function-code --function-name lambdaFunc \
    

    –zip-file fileb://~/path/to/your/lambdaFunc.zip

(上面的 lambdaFunc 部分没有引号,以防您像我一样想知道)

  1. 现在您可以在 Lambda 控制台中单击 测试。

  2. 我建议为上述两个命令添加一个短别名。这是我的更长的 Lambda 更新命令:

    alias up="aws lambda update-function-code --function-name lambdaFunc \
    

    –zip-file fileb://~/path/to/your/lambdaFunc.zip”

2022-06-24