Ballerina since v1.2.5 has built-in support for Azure Functions. In this way, you can take a Ballerina function and expose it as a serverless function in Azure Functions. Azure Functions take on a unique approach in defining serverless functions with the function trigger and bindings concept. In this way, we can access other cloud services such as storage services (queue, blob, etc.), CosmosDB, Twillio, and timers right from the function itself without any additional connectors or authentication processes. We map our parameters and return types with these bindings, which provides us direct access to the resources.
In the following video, I’ve done a walk-through of the main features of the Ballerina Azure Functions extension. Here I will be writing functions by using the triggers and bindings functionality, and showing how to build and deploy the functions.
The Ballerina extension for Azure Functions was possible through the custom handlers functionality that was introduced to further extend language support in Azure Functions. Using this support, it was possible to write a compiler extension, which generates the required artifacts for Azure Functions. For more details on how this was done, and for the source code, check here: https://github.com/ballerina-platform/module-ballerinax-azure.functions/.
More information on Azure Functions in Ballerina can be found with the following resources: