The Azure Functions team at Microsoft has been conducting a webcast every month to let the community stay up-to-date on the latest developments. This is a nice way for them to reach out and engage with the community to gain feedback on the features. In this session, Jeff Hollan, Eduardo Laureano, and Daria Grigoriu shares some exciting announcements. So, this is one blog you don’t want to miss!
Transcribe Credits: Surya Venkatasubramanian and Nadeem Ahamed
What’s New?
Python Support – General Availability
Python support for Azure Functions is now generally available! This capability allows you to host your production-grade workload across various domains like Machine Learning, Data Science and more.
Linux Consumption – General Availability
Production workloads in connection to Linux Hosting is now ready to run in consumption plan.
Managed Identities – General Availability
To be able to tackle the Production Workloads by the hosting platform, support for the managed identities has been enhanced in the Linux Consumption plan.
Remote Build – Preview
Linux Premium Plan – Preview
The Linux Premium plan allows you to diversify the way you host. It supports both code (same thing that can be done with Linux Consumption) and Custom Containers (to package all your dependencies).
Slots – General Availability
Deployment slot in Azure Function Consumption is now generally available! This was a lot challenging task to be implemented because Functions can be scaled out massively and how the swap can be done without scaling down your Functions was a big question mark, but the Functions team pulled it off and it now works as seamlessly as it works in App Service. So, if you have production scenarios that you want to relay on slots with Functions, it can be now done perfectly!
Demo – Python Support for Azure Functions
Python is a great language for Data Science and Machine Learning (ML). You can leverage the Python support in Azure Functions to provide serverless hosting for your intelligent applications.
Daria showed a quick demo on how a well-trained ML model hosted on Azure Functions along with scoring script depicts the image.
The above image shows the result for the image depicted as “Indian elephant, Elephant Maximus (score = 0.93640)”.
One of the premium features that Functions team about to roll out is to address the pain point that Python requires the server-side build. Dependency resolution has been done remotely which in turn reduces the package size and you would get the consistency of being able to build optimized images that are up to date with the latest versions.
There are scenarios where we need to bring in dependencies that we don’t have on our images. For instance, in open computer vision scenarios, you may want to create custom images.
The above code is all you need to create a Docker image where the pip installed, and dependencies are fetched from requirements.txt. Once, we create an image, it can be deployed to premium Linux. Not only you can deploy custom container images to Azure Functions but also you can access all the interesting features it offers like network isolation and higher-grade hardware.
What’s Coming?
- Python 3.7 – This is on the road map for Linux consumption. Hopefully, by this calendar year, we could expect the arrival of 3.7.
- VNet Triggers for Premium Plan – VNet trigger for Azure Function is now available for premium plan users.
- .Net Core 3 support – Keep an eye on GitHub as the team would roll out the road map for this feature and would reveal the expected dates for preview.
- RabbitMQ Trigger – This one of the user voice items in the line. The users might get access in a months’ time. Now, you can access RabbitMQ using KEDA, but, it does not support Azure Functions trigger.
- Performance Improvements – As always Azure Functions team works on improving performance for every single language.
Community Highlights
- Marc Duiker – Durable Functions Video Series
- Jon Wood – Azure Functions and ML.NET
- Anthony Chu – SignalR and Azure Functions
- Rahul Rai – Durable Entities
- Kees Schollaart – Device Offline detection with Durable Entities
Upcoming Events
- ServerlessDays Sydney/Melbourne – Aug 27-29
- ServerlessConf New York – Oct 7-9
- SpringOne Conference – Oct 7-10 (Austin, TX)
- Microsoft Ignite – Nov 4-9 (Orlando, FL)
Question and Answers
- Any chance Linux Consumption swap slots might be coming in the future?
Azure Functions team prioritize based on your requests and if that’s what your need, they can definitely start considering that.
- Are there any plans to make Python-based Functions a target for trained ML model deployments originating from Azure Machine learning, so right now you can deploy models to AKS or SCI, So the question is, is there any plans for making Functions a valid target for AML models?
They are in active conversation with the Azure Functions team and that’s been something that they have been looking into!
- Will Durable Functions support Python language?
Eduardo: There is already work underway internally on this.
Jeff: There was a recent internal group hackathon that put together a kind of starting of Python for Durable Functions and the last time I talked to them they were just cleaning it up a bit and they want to make an open-source preview that anyone could try to contribute as well.
- Is it possible to run Functions in a multi-tenant scenario, for example, you want to run the same function, but have it listen to more than one Cosmos DB connection string?
They don’t support multi triggers today and the Function must have one main trigger, so once you trigger a Function, then you can manage to connect to as many Cosmos DB as you want from that Function.
- Any ETA on PowerShell worker goes GA?
It is the one which the Azure Functions team is tracking around. You may request the team eventually if you have a production need to get support for your production model.
- Is KEDA going GA?
Version 1.0 would go GA in November this year.
- Any timeline for GA of VNet Integration associated with the premium plan?
It would be Generally Available in early December this year.
- Can you use Durable Functions with Docker?
In short, the answer is Yes. As long as you use Azure Storage account in the back-end.
- Any plans to add F# templates to Azure Functions core tools?
There are a few F# templates available for .NET CLI. But, not sure for the core tools.
- Is there any plan to let a durable entity have the knowledge of a timer or reminder similar to Service Fabric Actors?
There’s an open issue on GitHub tracking actor reminders. #716 in the Durable Functions extension repo.
You can mimic this today by sending a delayed message to a queue and a queue trigger that sends the actor a message.
You can watch the video here