Lambda,包括对节点_模块的依赖关系

Lambda,包括对节点_模块的依赖关系,lambda,node-modules,Lambda,Node Modules,我是Lambda的新手,正在尝试弄清楚如何在node_模块上部署依赖项。请注意,我没有使用无服务器。我正在使用webpack绑定Lambda函数 我想到要做的第一件事就是将node_模块依赖项作为webpack构建过程的一部分打包为一个文件。但后来我发现这不是一件好事?下一个选项是将相应的依赖节点模块复制到lambda部署zip文件夹中。但我这里的问题是 这是部署依赖项的标准方法吗 如果我的依赖项依赖于另一个依赖项,比如dependency2,那么我如何知道这一点,以及我是否需要复制它 有没有其

我是Lambda的新手,正在尝试弄清楚如何在node_模块上部署依赖项。请注意,我没有使用无服务器。我正在使用webpack绑定Lambda函数

我想到要做的第一件事就是将node_模块依赖项作为webpack构建过程的一部分打包为一个文件。但后来我发现这不是一件好事?下一个选项是将相应的依赖节点模块复制到lambda部署zip文件夹中。但我这里的问题是

  • 这是部署依赖项的标准方法吗
  • 如果我的依赖项依赖于另一个依赖项,比如dependency2,那么我如何知道这一点,以及我是否需要复制它
  • 有没有其他我错过的标准方式
  • 这是部署依赖项的标准方法吗

    标准方法是上传包含处理程序文件和
    node\u modules
    目录的zip包(如果需要)

    webpack方法是创建一个javascript文件包,该文件包已经包含了一个文件中的所有依赖项(在大多数简单的情况下)。如果您有依赖于本机绑定的依赖项(例如,
    bcrypt
    ),则可以将它们从网页包中排除,并且可以将
    bcrypt
    通常包含在
    节点模块
    目录中

    如果我的依赖项依赖于另一个依赖项,比如dependency2,那么我如何知道这一点,以及我是否需要复制它

    使用标准方式,
    npm
    已经可以为您处理这些依赖项了。因此,您所要做的就是在部署包中包含
    node\u模块

    它使用
    webpack
    ,为您处理此问题。只要学会正确配置它

    作为网页包配置的一个简单示例,您可以使用:

    const path = require('path');
    
    module.exports = {
      entry: {
        handler: './handler.js',
      },
      target: 'node',
      output: {
        libraryTarget: 'commonjs',
        path: path.join(__dirname, '.webpack'),
        filename: '[name].js'
      },
    };
    

    过去的日子!从今天起,您可以使用Lambda层将所有依赖项捆绑起来,并将它们上载到中心Lambda层,您的所有Lambda函数将能够神奇地将它们全部导入。