【问题标题】:Module not found Serverless Lambda Error with webpackWebpack 找不到模块无服务器 Lambda 错误
【发布时间】:2020-12-17 06:49:11
【问题描述】:

我正在使用 AWS lambda 函数。我已经为 es6 或更高版本的 js 配置了 Webpack 和 babel。一切运作良好。我还为常见的 nodejs 模块实现了 lambda 层。 这是 serverless.yml

layers:
  commonLayer:
    path: layers/common
    description: nodejs common modules

这里是使用 commonLayer 的 lambda 函数 second

  second:
    handler: handlers/second.hello
    layers:
      - { Ref: CommonLayerLambdaLayer }
    events:
      - http:
          method: get
          path: second

我在 commonLayer 中编写了一个函数以在 second 函数中使用,但是当我尝试运行 sls deploy 时出现此错误

ERROR in ./handlers/first.js
Module not found: Error: Can't resolve '/opt/nodejs/palindrome' in '/Users/adamanjum/Documents/workspace/serverless/handlers'
 @ ./handlers/first.js 2:0-48 11:12-22

Project Repository

【问题讨论】:

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


    【解决方案1】:

    palindrome 的导入路径不正确。在handlers/first.js 中,尝试将import palindrome from '/opt/nodejs/palindrome'; 更改为import palindrome from ../layers/common/nodejs/palindrome;

    【讨论】:

    • 嗯...它看起来不错,并且在本地运行没有任何错误,但它不满足 aws lambda 的层概念,并且在部署后会出现错误。
    • 这解决了您发布的错误,特别是在涉及sls offline 的场景中。您可能希望更新您的原始帖子。
    • Adam,你有没有搞清楚部署方面的问题?我在使用 serverless-bundle 时遇到了完全相同的问题
    猜你喜欢
    • 2017-08-10
    • 2019-08-27
    • 1970-01-01
    • 2016-07-23
    • 2015-06-12
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多