Announcing the general availability of Java support in Azure Functions

March 12th, 2019
Announcing the general availability of Java support in Azure Functions

This article was originally posted in the Microsoft Azure blog.

Azure Functions provides a productive programming model based on triggers and bindings for accelerated development and server-less hosting of event-driven applications. It enables developers to build apps using the programming languages and tools of their choice, with an end-to-end developer experience that spans from building and debugging locally, to deploying and monitoring in the cloud. Today, we're pleased to announce the general availability of Java support in Azure Functions 2.0!

Ever since we first released the preview of Java in Functions, an increasing number of users and organizations have leveraged the capability to build and host their server-less applications in Azure. With the help of input from a great community of preview users, we’ve steadily improved the feature by adding support for easier authoring experiences and a more robust hosting platform.

What's in the release?

With this release, Functions is now ready to support Java workloads in production, backed by our 99.95 percent SLA for both the Consumption Plan and the App Service Plan. You can build your functions based on Java SE 8 LTS and the Functions 2.0 runtime, while being able to use the platform (Windows, Mac, or Linux) and tools of your choice. This enables a wide range of options for you to build and run your Java apps in the 50+ regions offered by Azure around the world.

Powerful programming model

Using the unique programming model of Functions, you can easily connect them to cloud scale data sources such as Azure Storage and Cosmos DB, and messaging services such as Service Bus, Event Hubs, and Event Grid. Triggers and bindings enable you to invoke your function based on an HTTP request, or schedule an event in one of the aforementioned source systems. You can also retrieve information or write back to these sources as part of the function logic, without having to worry about the underlying Java SDK.

Development and monitoring in Azure Functions

Easier development and monitoring

Using the Azure Functions Maven plugin you can create, build, and deploy your Functions from any Maven-enabled project. The open source Functions 2.0 runtime will enable you to run and debug your functions locally on any platform. For a complete DevOps experience, you can leverage the integration with Azure Pipelines or setup a Jenkins Pipeline to build your Java project and deploy it to Azure.

Setup a Jenkins Pipeline to build your Java project and deploy it to Azure

What is even more exciting is that popular IDEs and editors such as Eclipse, IntelliJ, and Visual Studio Code can be used to develop and debug your Java Functions.

Debug Functions in Visual Studio Code

One of the added benefits of building your server-less applications with Functions is that you automatically get access to rich monitoring experiences thanks to the Azure Application Insights integration for telemetry, querying, and distributed tracing.

Enterprise-grade server-less

Azure Functions also makes it easy to build apps that meet your enterprise requirements. Leverage features like App Service Authentication / Authorization to restrict access to your app, and protect secrets using managed identities and Azure Key Vault. Azure boasts a wide range of compliance certifications, making it a fantastic host for your server-less Java functions.

Next steps

To get started, take a closer look at how the experience of building event-driven Java apps with Azure Functions looks like following the links below:

With so much being released now and coming soon, we’d sincerely love to hear your feedback. You can reach the team on Twitter and on GitHub. We also actively monitor Stack Overflow and UserVoice, so feel free to ask questions or leave your suggestions. We look forward to hearing from you!