Create your first Kotlin function in Azure using IntelliJ
This article shows you how to create an HTTP-triggered Java function in an IntelliJ IDEA project, run and debug the project in the integrated development environment (IDE), and finally deploy the function project to a function app in Azure.
If you don't have an Azure subscription, create an Azure free account before you begin.
Set up your development environment
To create and publish Kotlin functions to Azure using IntelliJ, install the following software:
- Java Developer Kit (JDK), version 8
- Apache Maven, version 3.0 or higher
- IntelliJ IDEA, Community or Ultimate versions with Maven
- Azure CLI
- Version 2.x of the Azure Functions Core Tools. It provides a local development environment for writing, running, and debugging Azure Functions.
Important
The JAVA_HOME environment variable must be set to the install location of the JDK to complete the steps in this article.
Create a function project
- In IntelliJ IDEA, select Create New Project.
- In the New Project window, select Maven from the left pane.
- Select the Create from archetype check box, and then select Add Archetype for the azure-functions-kotlin-archetype.
- In the Add Archetype window, complete the fields as follows:
- GroupId: com.microsoft.azure
- ArtifactId: azure-functions-kotlin-archetype
- Version: Use the latest version from the central repository
- Select OK, and then select Next.
- Enter your details for current project, and select Finish.
Maven creates the project files in a new folder with the same name as the ArtifactId value. The project's generated code is a simple HTTP-triggered function that echoes the body of the triggering HTTP request.
Run project locally in the IDE
Note
To run and debug the project locally, make sure you've installed Azure Functions Core Tools, version 2.
Import changes manually or enable auto import.
Open the Maven Projects toolbar.
Expand Lifecycle, and then open package. The solution is built and packaged in a newly created target directory.
Expand Plugins > azure-functions and open azure-functions:run to start the Azure Functions local runtime.
Close the run dialog box when you're done testing your function. Only one function host can be active and running locally at a time.
Debug the project in IntelliJ
To start the function host in debug mode, add -DenableDebug as the argument when you run your function. You can either change the configuration in maven goals or run the following command in a terminal window:
mvn azure-functions:run -DenableDebug
This command causes the function host to open a debug port at 5005.
On the Run menu, select Edit Configurations.
Select (+) to add a Remote.
Complete the Name and Settings fields, and then select OK to save the configuration.
After setup, select Debug < Remote Configuration Name > or press Shift+F9 on your keyboard to start debugging.
When you're finished, stop the debugger and the running process. Only one function host can be active and running locally at a time.
Deploy the project to Azure
Before you can deploy your project to a function app in Azure, you must log in by using the Azure CLI.
az login
Deploy your code into a new function app by using the
azure-functions:deploy
Maven target. You can also select the azure-functions:deploy option in the Maven Projects window.mvn azure-functions:deploy
Find the URL for your HTTP trigger function in the Azure CLI output after the function app has been successfully deployed.
[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
Now that you have deployed your first Kotlin function app to Azure, review the Azure Functions Java developer guide for more information on developing Java and Kotlin functions.
- Add additional function apps with different triggers to your project by using the
azure-functions:add
Maven target.