首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器端节点和Hummus。编译二进制文件不起作用

服务器端节点和Hummus。编译二进制文件不起作用
EN

Stack Overflow用户
提问于 2017-12-01 06:29:59
回答 2查看 1.3K关注 0票数 1

我试图使用Serverless框架在Lambda函数上使用HummusJS进行部署。

Hummus npm图书馆需要一个二进制编译才能发挥作用。这个(hummus.node)是在其node_modules文件夹中提供的。然而,当我需要‘鹰嘴豆泥’时,图书馆就会抛出一个bug。

代码语言:javascript
复制
const hummus = require('hummus');

module.exports.stamp = (event, context, callback) => {
    const response = {
        statusCode: 200,
        headers: {
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Credentials': true,
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({ url: 'url' })
    };
    callback(null, response);
};

模块初始化错误: Object.Module._extensions..node (module.js:597:18) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17)在require (内部/module.js:20:19)的错误(本地错误)。(/var/task/pdf-manipulator/node_modules/hummus/hummus.js:5:31) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-06 01:27:34

我使用docker构建二进制文件,然后将其复制到‘/node_node/hummus/bindings/hummus.ode’。

https://github.com/lambci/docker-lambda

然后我可以在复制lambda环境的docker中运行这个应用程序。

票数 1
EN

Stack Overflow用户

发布于 2019-03-21 22:59:27

docker-lambda解决方案绝对有效。然而,一位同事指出了一个更简单的解决方案,它不需要docker-lambda

hummus使用node-pre-gyp构建hummus.node二进制文件,并且有一个环境变量EXTRA_NODE_PRE_GYP_FLAGS来提供附加标志。如果为AWS的运行时环境配置了适当的标志,node-pre-gyp实际上将找到在https://hummus.s3-us-west-2.amazonaws.com/中存在的正确的预构建二进制文件。

为此,请执行以下操作来设置环境变量:

代码语言:javascript
复制
export EXTRA_NODE_PRE_GYP_FLAGS='--target_arch=x64 --target_platform=linux --target_libc=glibc'

然后执行npm install,它应该为AWS提取正确的二进制文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47587813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档