Microsoft announced the general availability (GA) of Java support in Azure Functions V2.0. Developers can now write functions in Java 8 and take advantage of the Maven-powered developer experience provided by Visual Studio Code, IntelliJ, Eclipse, and the cross-platform Functions Core Tools.
Back in October 2017, Microsoft began supporting Java when porting Azure Functions to .NET Core 2.0. With the GA release of Azure Function version 2.0 a few months ago, Microsoft further improved the support for Java and other non-.NET languages through the use of a new language worker model and process - providing better performance, and version support. The Azure Functions team at Microsoft also added support for more comfortable authoring experiences for developers and a more robust platform.
Asavari Tayal, program manager, Azure Functions team at Microsoft, stated in a blog post on the GA of Java support in Azure Functions:
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.
Developers can use the Azure Functions Maven plugin to create, build, and deploy their Java functions from any Maven-enabled project. The open source Functions 2.0 runtime will enable developers to run and debug their functions locally on any platform, and developers can leverage the integration with Azure Pipelines or set up a Jenkins Pipeline to build their Java project and deploy it to Azure.
Once deployed, the Java function can be invoked via an HTTP request or scheduled as an event. Furthermore, data can be written back to the calling source without the developer having to deal with the underlying Java SDK.
When building Java Functions in Azure, developers can also leverage Azure Application Insights for persisting telemetry, querying, and distributed tracing. Furthermore, developers can use features such as App Service Authentication / Authorization to restrict access to the Function app containing Java functions and protect secrets using managed identities and Azure Key Vault. More details on building Java functions on Azure are available on the website.
Lastly, Microsoft is not the only public cloud provider supporting Java within its serverless compute service. Amazon, for instance, supports various languages, including Java, within AWS Lambda, and IBM offers a serverless platform OpenWhisk, which supports Java too.