【发布时间】:2022-01-04 17:15:19
【问题描述】:
注意 (tl:dr):一切都在本地工作,但在 lambda 中不行。
我在 AWS 中有一个 lambda 函数,当我在本地运行服务器时,一切正常,algolia 的使用是在服务内部进行的,该服务位于我服务器内部的端点中。 我尝试安装 @algolia/cache-common 也没有帮助。 由于这个错误,对 lambda 的每次调用都会导致整个应用程序崩溃。 有什么办法可以解决吗? 错误如下:
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module '@algolia/cache-common'
Require stack:
/opt/nodejs/node_modules/algoliasearch/dist/algoliasearch.cjs.js
/opt/nodejs/node_modules/algoliasearch/index.js
/var/task/dist/api/v1/services/algolia.service.js
/var/task/dist/api/v1/handlers/jobs.handler.js
/var/task/dist/api/v1/controllers/jobs.controller.js
/var/task/dist/api/v1/v1.routes.js
/var/task/dist/api/routes.js
/var/task/dist/serverless.js
/var/runtime/UserFunction.js
/var/runtime/index.js",
"stack": [
"Runtime.ImportModuleError: Error: Cannot find module '@algolia/cache-common'",
"Require stack:",
"- /opt/nodejs/node_modules/algoliasearch/dist/algoliasearch.cjs.js",
"- /opt/nodejs/node_modules/algoliasearch/index.js",
"- /var/task/dist/api/v1/services/algolia.service.js",
"- /var/task/dist/api/v1/handlers/jobs.handler.js",
"- /var/task/dist/api/v1/controllers/jobs.controller.js",
"- /var/task/dist/api/v1/v1.routes.js",
"- /var/task/dist/api/routes.js",
"- /var/task/dist/serverless.js",
"- /var/runtime/UserFunction.js",
"- /var/runtime/index.js",
" at _loadUserApp (/var/runtime/UserFunction.js:202:13)",
" at Object.module.exports.load (/var/runtime/UserFunction.js:242:17)",
" at Object.<anonymous> (/var/runtime/index.js:43:30)",
" at Module._compile (internal/modules/cjs/loader.js:1085:14)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)",
" at Module.load (internal/modules/cjs/loader.js:950:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:790:12)",
" at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)",
" at internal/main/run_main_module.js:17:47"
]
我使用 algolia 的方式如下:
const applicationId: any = config.get("ALGOLIA.APPLICATION_ID");
const apiKey: any = config.get("ALGOLIA.ADMIN_API_KEY");
const client = algoliasearch(applicationId, apiKey);
const index = client.initIndex("my-actual-index");
我的 lambda 结构是一个 lambda 和 3 个模块层,它适用于我使用的每个库,但不适用于 algolia。当我看 lambda 的包时,我可以看到与 algolia 相关的包
我尝试安装确切的包(@algolia/cache-common)但它没有做任何事情, 还尝试了 instally @types/algolia,但效果不佳。
有什么我错过的吗?
【问题讨论】:
标签: javascript npm aws-lambda node-modules algolia