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?
In our case, it was node-dv module, which is built using
node-gyp
. The following steps make it work: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.
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.You will probably need to install git & g++ compiler on the EC2. You can do this running
Finally, clone your app to your new EC2 and install your app's dependecies: