【问题标题】:AWS Lambda Function: Cannot find package importedAWS Lambda 函数:找不到导入的包
【发布时间】:2022-06-22 00:14:08
【问题描述】:

我将 knex 模块(例如)从 lambda 层添加到我的函数 lambda (Node.js 14.x)。 当我在 AWS Lambda 中部署我的函数并在我的 lambda 函数中使用 require 时,import 不起作用。

注意:在本地与 requireimport 一起使用,模块安装在我的 lambda 函数中的 node_modules 中。

要求(有效)

index.js

const knex = require('knex')(myConfig);

package.json

{
  "name": "my-function",
  "version": "1.0.0",
  "main": "index.js",
  "dependencies": {}
}

导入(无效)

index.js

import knexModule from 'knex';

const {knex} = knexModule;
const db = knex(configKnex);

package.json

{
  "name": "my-function",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "dependencies": {}
}

错误

Response
{
  "errorType": "Error",
  "errorMessage": "Cannot find package 'knex' imported from /var/task/index.js\nDid you mean to import knex/knex.js?",
  "trace": [
    "Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'knex' imported from /var/task/index.js",
    "Did you mean to import knex/knex.js?",
    "    at new NodeError (internal/errors.js:322:7)",
    "    at packageResolve (internal/modules/esm/resolve.js:732:9)",
    "    at moduleResolve (internal/modules/esm/resolve.js:773:18)",
    "    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:887:11)",
    "    at Loader.resolve (internal/modules/esm/loader.js:89:40)",
    "    at Loader.getModuleJob (internal/modules/esm/loader.js:242:28)",
    "    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:76:40)",
    "    at link (internal/modules/esm/module_job.js:75:36)",
    "    at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:60:5)",
    "    at /var/runtime/deasync.js:23:15"
  ]
}

如何在 AWS Lambda 中使用 import

我从 AWS Lambda 下载的图层如下所示:

【问题讨论】:

  • this 有帮助吗?
  • @ApoorvaChikara 我按照说明进行操作,但没有成功。谢谢。

标签: node.js aws-lambda import require aws-lambda-layers


【解决方案1】:

这是因为 Lambda 层还不支持 ES 模块,但是有一些变通方法:

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2017-09-16
    • 2021-11-20
    • 2016-04-26
    • 2021-10-29
    • 1970-01-01
    相关资源
    最近更新 更多