AWS Lambda allows you to run custom binaries as child processes.
However, if the packaged binary you're running on AWS Lambda uses shared libraries, they may not be available in the Lambda environment. If this is the case, your binary will terminate without any output. In my case, the exit status code was 127
, which wasn't very helpful (typically this is "command not found.")
2015-11-18T00:50:10.731Z 521db901-8d8e-11e5-b9df-cd31cc90ece2 Calling phantom: /var/task/phantomjs [ '/var/task/phantomjs-script.js' ]
2015-11-18T00:50:10.809Z 521db901-8d8e-11e5-b9df-cd31cc90ece2 child process exited with code 127
Linux's loader, ld.so, allows you (see manpage) to set an environment variable called LD_DEBUG
that will output verbose information while the shared libraries are loaded.
Since Lambda doesn't let you set arbitrary environment variables, you need to set the environment