Python 2.7 AWS Lambda Support will end in 2020? - python

With the end of life of Python 2.7 will I still be able to deploy code using this version in AWS Lambda?
When should I migrate my functions to 3.6?
I coudn't find anything from AWS.

The selected answer is a little misleading. On 2020-01-02, AWS announced it would continue to run Python 2 scripts until the end of calendar 2020. The pertinent part of their post:
We recognize that Python 2 and 3 differ across several core language aspects, and the application binary interface is not always compatible. We also recognize that these differences can make migration challenging. To allow you additional time to prepare, AWS Lambda will continue to provide critical security patches for the Python 2.7 runtime until at least December 31, 2020. Lambda’s scope of support includes the Python interpreter and standard library, but does not extend to third-party packages.
So you should migrate functions, but you have the rest of this calendar year.
edit: The linked AWS blog post is updated and the new end-of-support date is June 1, 2021.

This is all documented at Runtime Support Policy.
Specifically, Python 2.7 will be EOL on 2020-01-01. AWS will typically notify you 60 days in advance of a runtime deprecation. Upon deprecation, you can update an existing Lambda function for 30 days but you can't create new Lambda functions using that runtime. The Lambda function and its deprecated runtime environment will still be available for execution.
I would plan to migrate functions before the Python 2.7 EOL date.

Related

Can Azure Functions be written in Python?

I'm interested in using Azure Functions written in Python with Cosmos DB.
I saw a demo that was posted very recently (February 6th) that showed how to enable "Experimental Language Support" for AFs. Referencing the demo here (https://www.youtube.com/watch?v=pKGVRKtCp7Y) shows enabling this support option (as of 8 weeks ago) allowed Azure Functions to be written in Python.
I've followed the steps in the demo and I dont see Python as an option currently in my portal for HTTP Triggers. I'm wondering if support for Python has been dropped entirely or if there's a step I'm missing?
Please advise.
.
From the GitHub issue:In-portal editing will be disabled for Python Functions.
Python Function Apps on Functions v2, deployed to a Linux App Service
Plan allow in-portal file editing. This feature will be disabled
starting March 2019.
However you still could create the Python Function with VS code extension or Azure Functions Core Tools.

How to update my forks of Evernote SDK for Python to track latest updates?

First of all, I'm hoping that Evernote will start maintaining its Python SDK (evernote/evernote-sdk-python for Python 2 and evernote/evernote-sdk-python3 for Python 3). In the meantime, I'm looking for advice on how to update my forks of these SDK to bring them up-to-speed with the latest changes in the Evernote API. Specifically:
Can someone from Evernote indicate whether these SDKs will be supported or are we on our own?
For evernote/evernote-sdk-python for Python 2, it looks like a good place to start is to merge the matthewayne/evernote-sdk-python fork and then pick and choose from the outstanding pull requests. Has someone already gone down this path?
For (https://github.com/evernote/evernote-sdk-python) and evernote/evernote-sdk-python3 for Python 3), has anyone tried Merge latest python2 sdk by ahxxm · Pull Request #11 · evernote/evernote-sdk-python3?
Where can I find the latest Thrift IDL files for Evernote? evernote/evernote-thrift: Thrift IDL files for the Evernote Cloud API hasn't been updated since June 2013 (to match version 1.25 of the Evernote API. (Are we up to version 1.28 at the very least of the API?) BTW, what is the current version number of the API?
How do I go about compiling the Thrift IDL files into Python code for the Evernote SDK?
Thanks in advance!
We haven't put too much work into our SDKs lately but we're hoping to change that in the coming weeks. As a first step we (finally) updated our API reference (another, minor update coming soon) and the next step is our SDKs. There's a lot of work to do here, since we have SDKs for quite a few languages, and the few of us that are working on this stuff are doing so in between core product work. Part of that is adding newly generated thrift files, so you shouldn't need to worry about that.
Thank you for your patience!

Python updates through Eclipse

How do I get Python updates through Eclipse Kepler Version?
I previously used to download it from the Google Apps Engine website, but since January 2014 Google recommended using Eclipse to get automatic updates for Python. However, when I downloaded Eclipse Kepler it did not contain Python. It only contains Java.
Eclipse has several plugins that support developing software with Python (PyDev, for example). None of those include a Python runtime and they never did. So you probably misunderstood something.
My guess is that when you say "Python", you actually mean "the app engine framework for the Python language".
As far as I can tell, you still get that from Google: https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
Now there is also a plugin for Eclipse which adds extended support for developing App Engine applications. You get that from Google as well: https://developers.google.com/eclipse/docs/getting_started

What's the difference between Amazon's official S3.py vs boto.s3

I intend to use Amazon S3 in my Django project, what's the difference between Amazon's official S3.py and boto.s3? Which one should I use?
I suppose that, by S3.py, you are referring to the code available to download here. So, please correct me if I am wrong.
In this case, IMHO, boto has some advantages, as pointed out at the Getting Started with AWS and Python tutorial:
Bar none, boto is the best way to interface with Amazon Web Services (AWS) when using Python. After all, It has been around for years, has grown up alongside AWS, and is still actively maintained.
Boto also has a good documentation, and an active mail list.
On the other hand, take a look at the last documented update to S3.py, and particularly when it happened:
2007-11-05: Updates to support EU
And this is another thing that got me thinking (remember that Python 3.3.0 beta is out there):
This sample was built using Python 2.2.3.
So, my recommendation is: you should use boto.

What will be the upgrade path to Python 3.x for Google App Engine Applications?

What is required to make the transition to Python 3.x for Google App Engine?
I know Google App Engine requires the use of at least Python 2.5.
Is it possible to use Python 3.0 already on Google App Engine?
It is impossible to currently use Python 3.x applications on Google App Engine. It's simply not supported, and I'd expect to see support for Java (or Perl, or PHP) before Python 3.x.
That said, the upgrade path is likely to be very simple from Python 2.5 to Python 3.x on App Engine. If/when the capability is added, as long as you've coded your application anticipating the changes in Python itself, it should be very straightforward. The heavy lifting has to be done by the Google Engineers. And you'll no doubt be able to keep your application at Python 2.5 for a long while after Python 3.0 is available.
At least at the being, Guido was working closely with the team at Google who is building AppEngine. When this option does become available, you will have to edit your main XAML file.
I agree with Chris B. that Python 3.0 support may not be forthcoming too soon, but I'm not sure I agree that it will come sooner than Perl or PHP. At the Google I/O conference last year, they were very mum on what future languages they would support on AppEngine but they were pretty clear on the fact that they're actively exploring how to safely allow other code to run. One of the main reason they chose to support Python is that they due to it's dynamically compiled nature, they could support 3rd party library extensions with the minimal restriction that all add-ons must be in pure Python.
I wouldn't be surprised if Python 3.0 support was introduced sooner than new languages.
The app.yaml syntax already supports multiple languages and multiple API versions, though only one of each (Python, API version 1) is currently supported. Presumably, one of those extension mechanisms will be used to specify that you want Python 3, and it'll be up to you to port your app over to work in Python 3, then change that setting.
As it does not look like that google updates app engine to python 3 soon it might be worth to keep an eye on Jython. As of now they still work on 2.6, but that would already be better than 2.5.

Categories