【问题标题】:How to load a lib folder in aws lambda?如何在 aws lambda 中加载 lib 文件夹?
【发布时间】:2016-06-07 22:37:17
【问题描述】:

在无服务器中,我有以下文件夹结构

/component_a/function_1/function_1.js
/component_a/lib/util.js

当我尝试使用

从 function_1.js 加载 util.js
u = require('../lib/util.js')

它在无服务器 CLI“无服务器功能运行功能_1”中工作。但是在 lambda/api-gateway 中找不到 lib/util.js 。

这是错误“错误:找不到模块'../lib/util'”

我该如何解决?

【问题讨论】:

    标签: node.js aws-lambda serverless-framework


    【解决方案1】:

    这是解决方法。在 component_a/s-function.json 替换

    "handler": "handler.handler",
    

    "handler": "component_a/handler.handler",
    

    在function_1.js中调用util.js之类的

    u = require('../lib/util')
    

    来自无服务器文档

    处理程序属性使您能够在您的 功能。默认情况下,处理程序属性是 handler.handler,即 意味着它只相对于函数文件夹,所以只有函数 文件夹将部署到 Lambda。

    如果你想包含一个函数的父子文件夹,你 应该将处理程序更改为这样: functionName/handler.handler 如您所见,处理程序的路径 现在包括函数文件夹,这意味着路径是现在 相对于父子文件夹,所以在这种情况下父子文件夹 将与您的功能一起部署。所以如果你有一个 lib 文件夹 在您的功能所需的父子文件夹中,它将是 与您的函数一起部署。

    这也使您能够处理 npm 依赖项,但是您 喜欢。如果您在该父级中有 package.json 和 node_modules 子文件夹,它将包含在部署的 lambda 中。所以越 您包含在处理程序路径中的父文件夹,您进入的越高 文件树。

    【讨论】:

      猜你喜欢
      • 2020-04-13
      • 1970-01-01
      • 2011-03-12
      • 2018-12-08
      • 1970-01-01
      • 2020-11-05
      • 2013-12-09
      • 2018-08-04
      • 1970-01-01
      相关资源
      最近更新 更多