Reputation: 5588
For example, I would like to use scikit-learn for machine learning, and pandas, numpy, and matplotlib/seaborn for data analysis. Does AWS Lambda support all these libraries? Is there a list of libraries supported? Or should I create a virtual server instead, to ensure I can use any Python library I want?
Upvotes: 6
Views: 17042
Reputation: 301
In addition to the default Python Standard Library, some third-party packages are embedded in AWS Lambda Python runtimes. These packages are ready to be used in your FaaS functions.
A daily-updated list of supported packages can be found here.
https://www.feitsui.com/en/article/2
Upvotes: 5
Reputation: 4653
Those modules are not available by default. I found this (older) list of available modules, along with code to generate a current report of what is available, should you wish to do so:
https://gist.github.com/sjehutch/36493ff674b1b9a16fc44a5fc270760c
You can build your own environment using a virtualenv and upload that to Lambda. It can contain anything you want. See here for more info:
https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
So you can still use AWS Lambda, and should not require a virtual server.
Edited to add a bit of self promotion:
I made a web site that shows the current modules available in each environment provided by Amazon.
Upvotes: 21
Reputation: 172
I've built a small library called juniper to automate the packaging of code for AWS lambda functions.
All you need to do to use juniper is create a small manifest.yml
file that looks like:
functions:
# Name the zip file you want juni to create
router:
# Where are your dependencies located?
requirements: ./src/requirements.txt.
# Your source code.
include:
- ./src/lambda_function.py
As long as you have your dependencies in the requirements.txt, juniper will package them for you. There are a few examples in our code base that showcase the features of juniper.
Upvotes: 1