Create your first function with Java and Eclipse (Preview)

Note

Java for Azure Functions is currently in preview.

This article shows you how to create a serverless function project with the Eclipse IDE and Apache Maven, test and debug it, then deploy it to Azure Functions.

If you don't have an Azure subscription, create a free account before you begin.

Set up your development environment

To develop a functions app with Java and Eclipse, you must have the following installed:

Important

The JAVA_HOME environment variable must be set to the install location of the JDK to complete this quickstart.

It's highly recommended to also install Azure Functions Core Tools, version 2, which provide a local environment for running and debugging Azure Functions.

Create a Functions project

  1. In Eclipse, select the File menu, then select Project.
  2. Open the Java Project folder in the New Project window and select Maven Project, then select Next.
  3. Accept the defaults in the New Maven Project dialogue and select Next.
  4. Select Add Archetype and add the entries for the azure-functions-archetype.
    • Archetype Group ID: com.microsoft.azure
    • Archetype Artifact ID: azure-functions-archetype
    • Version: Use latest version from the central repository Eclipse Maven create
  5. Click OK and enter details for current project, and eventually Finish.

Maven creates the project files in a new folder with a name of artifactId. The generated code in the project is a simple HTTP triggered function that echoes the body of the triggering HTTP request.

Run functions locally in the IDE

Note

Azure Functions Core Tools, version 2 must be installed to run and debug functions locally.

  1. Right-click on the generated project, then choose Run As and Maven build.
  2. In the Edit Configuration dialog, Enter package in the Goals and Name fields, then select Run. This will build and package the function code.
  3. Once the build is complete, create another Run configuration as above, using azure-functions:run as the goal and name. Select Run to run the function in the IDE.

Terminate the runtime in the console window when you're done testing your function. Only one function host can be active and running locally at a time.

Debug the function in Eclipse

In your Run As configuration set up in the previous step, change azure-functions:run to mvn azure-functions:run -DenableDebug and run the updated configuration to start the function app in debug mode.

Select the Run menu and open Debug Configurations. Choose Remote Java Application and create a new one. Give your configuration a name and fill in the settings. The port should be consistent with the debug port opened by function host, which by default is 5005. After setup, click on Debug to start debugging.

Debug functions in Eclipse

Set breakpoints and inspect objects in your function using the IDE. When finished, stop the debugger and the running function host. Only one function host can be active and running locally at a time.

Deploy the function to Azure

The deploy process to Azure Functions uses account credentials from the Azure CLI. Log in with the Azure CLI before continuing using your computer's command prompt.

az login

Deploy your code into a new Function app using the azure-functions:deploy Maven goal in a new Run As configuration.

When the deploy is complete, you see the URL you can use to access your Azure function app:

[INFO] Successfully deployed Function App with package.
[INFO] Deleting deployment package from Azure Storage...
[INFO] Successfully deleted deployment package fabrikam-function-20170920120101928.20170920143621915.zip
[INFO] Successfully deployed Function App at https://fabrikam-function-20170920120101928.azurewebsites.net
[INFO] ------------------------------------------------------------------------

Next steps

  • Review the Java Functions developer guide for more information on developing Java functions.
  • Add additional functions with different triggers to your project using the azure-functions:add Maven target.