'Specifying C(++) dependencies for python packages for use in AWS Lambda
I have a serverless service that I want to be able to use the sasl pypi package from in AWS Lambda. Unfortunately, the AWS Lambda environment doesn't seem to have the newest versions of libstdc++.so, which means that when our build server zips up the pip install'd sasl package and we invoke the lambda, there are the expected errors:
Unable to import module 'handler': /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /var/task/sasl/saslwrapper.so)
My question is: How to get around this?
Is there a way to build these on an Amazon Linux instance against updated libstdc++.so.6 so that it can be bundled in with the libs? Would setting LD_LIBRARY_PATH env variable to . and including the newest version of libstdc++.so.6 work? Are there best practices around this anywhere?
Solution 1:[1]
You can add simply the gcc-c++ binaries needed with this custom gcc version for lambda : https://github.com/lambci/gcc-lambda-layer
Or as Bluu answers compile your own image.
Edit : new solution : because its sometimes can be annoying to package layers especially with C++ packages ( numpy pands scrapy ect...), I made a lambda to create my layers propely and fast : https://github.com/vincentventalon/serverless_layer_generator
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
