在index.js文件中添加了以下行
var config = {
host: 'http://localhost:9200'
}
var appmetrics = require('appmetrics-elk').monitor(config);
当尝试测试lambda函数时,它表示模块初始化错误,请找到错误的堆栈跟踪
{
"errorMessage": "/var/task/node_modules/appmetrics-elk/node_modules/appmetrics/appmetrics.node: invalid ELF header",
"errorType": "Error",
"stackTrace": [
"Object.Module._extensions..node (module.js:434:18)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object. (/var/task/node_modules/appmetrics-elk/node_modules/appmetrics/index.js:27:13)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)"
]}
使用最新的appmetrics-elk版本。 任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
您没有提供任何有关您尝试运行此类环境的信息,因此这在黑暗中有点刺痛:
根据ELF Header or installation issue with bcrypt in Docker container(第二个答案),当您在本地构建应用程序然后尝试在Bluemix或Docker等容器或云环境中运行它而不清除{{{}时,可能会发生这种情况。 1}}目录。
node_modules
依赖于appmetrics-elk
,其中包含本机C代码。当您appmetrics
时,您最终会得到一个特定于您的环境的npm i appmetrics-elk
。如果您随后将其上传到云或容器(即不同的环境),则二进制文件node_modules/appmetrics-elk/node_modules/appmetrics/appmetrics.node
将无法在此处运行。
解决方案是只上传没有appmetrics.node
目录的应用程序,并在node_modules
中包含对appmetrics-elk
的依赖关系。然后容器应该构建一个在该环境中工作的package.json
。