5 ms·
AWS Lambda Supports Python 3.7
- ec109685 8y agoHonest question, why does it matter what version of python lambda supports (or any framework / language for that matter)? Couldn’t you just pick the go runtime for example and have it execute the framework / language you want with minimal overhead given it will be a call between two processes running on same host, which you can keep running between invocations.
- Dunedan 8y agoAWS just released a solution to run any programming language on AWS Lambda: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-programming-language-and-share-common-components/ https://aws.amazon.com/blogs/aws/new-for-aws-lambda-use-any-...
- amelius 8y agoOk, so I take from this that the post about specifically Python 3.7 doesn't make much sense really (as a HN post).
- hav 8y agoAWS provides the Python 3.7 runtime for you, so you don't need to bundle it. The post refers to runtimes that AWS doesn't provide, such as Haskell.
- EwanToo 8y agoIt makes sense because this is an AWS supplied executable, where you just upload the .py files. If you follow the "Run any language" approach, you need to bundle the python interpreter and any libraries required.
- Alex3917 8y ago> why does it matter what version of python lambda supports (or any framework / language for that matter)? Python 3.7 is a lot faster (30 - 40%) than Python 3.6 for certain types of functions. And you can't (easily) just install Python 3.7 from another runtime, because it has a ton of dependencies and takes minutes to compile. So even if it's technically possible, it precludes a lot of use cases.
- nicolashahn 8y agoI actually dealt with a similar problem a couple years ago, we were trying to get numpy on Lambda but there's C compilation that needs to happen. What I ended up doing was provisioning an EC2 instance with the same settings as the environment that Lambda uses, then building everything there, and shoving the binaries in the Lambda. It worked, I'm pretty sure the same thing would work for building Python.
- ramoz 8y agoGenuine question... Does it support the size of a typical (for data, ml, image proc, etc) Python dependency bundle?
- icebraining 8y agoThe deployment package size limit seems to be 250MB: https://docs.aws.amazon.com/lambda/latest/dg/limits.html https://docs.aws.amazon.com/lambda/latest/dg/limits.html
- pplonski86 8y agoThat's the limitation for data related worker tasks. The iron.io can be alternative (they offer 512 MB https://try.iron.io/pricing-worker-monthly/ https://try.iron.io/pricing-worker-monthly/)
- Glowbox 8y agoThere are workarounds for that, f.e. on startup loading code from an s3 bucket (https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3 https://hackernoon.com/exploring-the-aws-lambda-deployment-l...)
- icebraining 8y agoThat workaround is for the 50MB limit on zip files, not for the 250MB limit :)
- zwily 8y agoNo, you get another 500 MB of tmp space you can use at runtime. This workaround does work.
- visarga 8y agoThat would be OK for some ML applications if the framework itself would not be included in the deployment package.
- 8y ago
- asplake 8y agoElastic Beanstalk meanwhile is still on Python 3.4
- Alex3917 8y agoFor the preconfigured Docker version, yeah. But for the regular Python Beanstalk they released 3.6 at roughly the same time that Lambda released 3.6 support, so maybe there is some hope there.