How can I compile a node C++ addon so that I can u

2020-07-22 18:08发布

AWS lambda does not support installing linux binaries on the system, you would have to include the executables on your system. this would be easy for executables such as ffmpeg that already supply static executables.

How would this work for node binary addons that are compiled to using node-gyp? Would simply including the build/ directory from a linux environment work?

Has anyone figured this out yet?

1条回答
放我归山
2楼-- · 2020-07-22 18:34

In our case, it was node-dv module, which is built using node-gyp. The following steps make it work:

  1. Spawn new EC2 instance. Make sure it is based on exactly the same image as your AWS Lambda runtime. You can review Lambda env details here: http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html. In our case, it was Amazon Linux AMI called amzn-ami-hvm-2015.03.0.x86_64-gp2.

  2. Install nvm and use it to install the same version of Node.js as on the AWS Lambda. At the time of writing this, it was v0.10.36. You can refer to http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html again to find out.

  3. You will probably need to install git & g++ compiler on the EC2. You can do this running

    sudo yum install git gcc-c++
  4. Finally, clone your app to your new EC2 and install your app's dependecies:

    nvm use 0.10.36
    npm install --production
    
查看更多
登录 后发表回答