Loading...

Azure Functions using Python: 2023 in Review

Azure Functions using Python: 2023 in Review

The Azure Functions team is thrilled to share the key investments made in 2023 to enhance the Python experience! This year has been a big one for Python, with a highlight being a new programming model release that enables customers to use decorators and embrace a simpler structure. This release is part of a Functions-wide initiative to improve the development experience across all languages.

 

Releases in 2023

 

Generally Available: V2 Programming Model for Python 

The v2 model is designed to provide a functions development experience that is more familiar to Python developers. Our hope with the release of this feature is to greatly enhance the getting started experience and usability with Functions using Python.

 

Following is an example of a Function Application with an HTTP trigger using both the v1 and the v2 programming models:

 

File Name v1 v2
init.py import azure.functions def main(req: azure.functions.HttpRequest) -> str: user = req.params.get('user') return f'Hello, {user}!'  
function.json { "scriptFile": "__init__.py", "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "$return" } ] }  
function_app.py   import azure.functions app = func.FunctionApp() @app.function_name(name="HttpTrigger1") @app.route(route="req") def main(req: azure.functions.HttpRequest) -> str: user = req.params.get('user') return f'Hello, {user}!'


Note that using the v1 programming model, there would be an 'init.py' and 'function.json' file for each function within the function application. When using the v2 programming model, all functions can be defined within the 'function_app.py' file. This significantly decreases the number of files and simplifies the folder structure, making it easier to manage applications. To learn more, see V2 Python Programming Model is Generally Available. Let us know your thoughts about this new programming model here.

 

 

Generally Available: Support for Python 3.11 

Support for Python 3.11 was released in September 2023! This enables usage of new features released in Python 3.11 to be leveraged when developing Azure Functions.

 

Performance Improvements

We made key changes on how we load our modules during specialization, and this work has resulted in a 33% decrease in our cold start times. This improvement will green light new scenarios as well as enhance the existing experience when it comes to performance.

 

Generally Available: Apple Silicon Mac Support for Python versions 3.8+

Customers can now use Core Tools natively on Apple Silicon Macs. Enabling development on Apple Silicon Macs eliminates the need for customers on machines like the M1 Mac to emulate an x86 environment on their machine. 

 

What's next?

In the upcoming months, we will be working on supporting Python 3.12, making improvements to the triggers and bindings experience, adding new features to the v2 programming model, and more!

 

If you haven’t already tried Azure Functions using Python, get started today!

Are you interested in leveraging Open AI using serverless? Check out this sample of a personalized, intelligent chatbot that draws its knowledge directly from an individual's email interactions. Using Azure Functions and Open AI, the bot allows one to get quick answers to inquiries about their inbox.

 

Questions or comments? Create an issue in the Azure Functions Python repository. 

 

Thank you so much for your support this year - we appreciate and value our community greatly, and are grateful for your support, feedback, and trust. If you'd like to provide feedback for the product, please submit the Azure Functions Python Survey by following the link and clicking 'New Discussion'. We look forward to delivering new features and product improvements in 2024.

 

Published on:

Learn more
Azure Compute Blog articles
Azure Compute Blog articles

Azure Compute Blog articles

Share post:

Related posts

Introducing langchain-azure-cosmosdb: Build Agentic Apps and RAG with One Database

Build AI Agents and RAG Applications with the New LangChain + LangGraph Connector for Azure Cosmos DB Building AI agents and RAG applications ...

2 days ago

Azure Developer CLI (azd) – April 2026

The Azure Developer CLI (azd) shipped five releases in April 2026. The biggest theme this month is multi-language hook support: write azd hook...

3 days ago

Dynamics 365 Supply Chain Management – Run Planning Optimization on Azure operated by 21Vianet

We are announcing the ability for companies in China running Dynamics 365 Supply Chain Management on Azure operated by 21Vianet to run Plannin...

3 days ago

Announcing the Private Preview of Cosmos DB Azure RBAC Integration

Introduction Managing access to Azure resources often means dealing with two separate permission models: one for management operations and ano...

4 days ago

Azure DocumentDB (with MongoDB compatibility) for Banking: A Modern Customer 360 Approach

Introduction: Transforming Customer Intelligence in Banking Every day, people interact with their bank across mobile apps, branches, call cent...

4 days ago

Exam AI-901: Microsoft Azure AI Fundamentals

With a massive amount of focus on AI across the Microsoft platform, I decided to sit the new AI-901 exam, which is the new Azure fundamentals ...

5 days ago

The problem: All-or-nothing batch processing in Azure Service Bus

Azure Functions lets you settle each Service Bus message on its own within a batch. Complete, abandon, dead-letter, or defer messages one by o...

5 days ago

Welcome to Azure Cosmos DB Conf 2026

Today is the day. Azure Cosmos DB Conf 2026, in partnership with AMD, is a free virtual developer event focused on building modern, scalable a...

5 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy