Kotlin is an emerging development language rated as one of the most loved languages in the last Stack Overflow Developer Survey. It is becoming the default language for Android Development and being eyed with interested by those with investments in Java and looking for a more modern JVM language.
1. Reference Documentation
- Create your first Azure function with Java and IntelliJ
- Azure Functions Java developer guide
- Library for Azure Java Functions
- Register Azure Functions binding extensions
- Maven Plugin for Azure Functions
- Azure Toolkit for IntelliJ
2. Set up your development environment
To develop a function with Java and 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
- Azure Functions Core Tools, version 2
The JAVA_HOME environment variable must be set to the install location of the JDK to complete the steps in this article.
3. Create an Azure 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-archetype.
- In the Add Archetype window, complete the fields as follows:
- GroupId: com.microsoft.azure
- ArtifactId: azure-functions-archetype
- Version: Use the latest version from the central repository
- Select OK, and then select Next.
- Enter your details for the 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.
4. Specify the Maven basic Elements
Define the GroupId and the ArtifactId for the project This information is added to the project pom.xml.
The ArtifactId forms part of the Azure Function name in the pom.xml file.
For more information see Creating a new Maven project
5. Confirm the Maven Project settings
6. Confirm Project Name and Location
The project structure will be created.
7. Enable Auto-Import
8. Azure Configuration
By default the pom.xml file is opened when the project is created.
You can set the following project properties in the pom.xml file
- Azure Function App Name
- Azure Function App Region
Run the following command for a complete list of regions. Choose the location by the "name" field in the returned JSON array.
az account list-locations
9. Open the default Http Trigger
The Azure Functions Maven Archetype will create an example Http Trigger. You will find this by navigating the src project directory.
10. Convert the Java Azure Function to Kotlin file
Right mouse click the default Java Function named Function and select Convert Java File to Kotlin File. And voila, the Java file magically converts a Kotlin project.
The default Azure Function converted from Java will now look like beautiful Kotlin.
11. Configure the Project for Kotlin
From the Tools menu, select Kotlin, then Configure Kotlin in Project
12. Enable All Modules containing Kotlin files
13. Clean and Package the Project
From the Maven pop-out tab, expand Lifecycle, then run the clean followed by the package commands. This will build the Kotlin project.
14. Execute Azure Functions Run
From the Maven pop-out tab, expand Plugins, then run the azure-functions:run. This will start the Azure Functions Core Tools and bootstrap your Kotlin Azure Function.
To test the function click the http://localhost:7071/api/HttpTrigger-Java link
15. Pass in a parameter on the Query String
In the browser add a name parameter to the query string. For example, http://localhost:7071/api/HttpTrigger-Java?name=dave and you will see the webpage echos the value passed in for name.
16. Stop the function
Click the stop icon to stop the function from running.
17. Enable Debugging
Right mouse click on the azure-functions:run Maven Archetype and select Create 'glovebox-function [...
18. Create Run/Debug Configuration
Add -DenableDebug to the command line.
19. Enable Java Debugger Attach
From Run menu, select Edit Configuration
20. Add New Configuration
Click the + sign, then select Remote.
21. Name the New Configuration
In this case the configuration is named Attach Debugger
22. Set a breakpoint in the Kotlin Azure Function source
23. Run Debugger Enabled Configuration
From the run/debug configuration selector select the Maven azure-functions:run configuration. and the click the green start icon or press Shift+F10.
24. Attach the Debugger
From the run/debug configuration selector select the Attach Debugger configuration and click the green start debugger icon or press Shift+F9.
25. Initiate the Http Trigger in Debug Mode
Click the http://localhost:7071/api/HttpTrigger-Java link to initiate the Http Trigger.
26. Step through the Http Trigger Azure Function with the Debugger
Using the debugger controls, step through the Azure Function code.
27. Stop the Debugger and Azure Function
Click the Stop icon to detach the debugger and stop the Azure Function
28. Adding new Azure Function Triggers
The azure-functions:add Maven archetype supports the following trigger types.
- HTTP Trigger
- Azure Storage Blob Trigger
- Azure Storage Queue Trigger
- Timer Trigger
- Event Grid Trigger
- Event Hub Trigger
- Cosmos DB Trigger
- Service Bus Queue Trigger
- Service Bus Topic Trigger
From the Maven pop-out, under Plugins, select azure-functions:add
29. Deploying Kotlin Azure Functions to Azure
To deploy the staging directory to target Azure Functions. If target Azure Functions does not exist already, it will be created.
30. Building an End to End Secure, Scalable IoT Serverless Solution
The next article will be about creating an end to end IoT Serverless solution with Kotlin Azure Functions and Azure SignalR.
Top comments (2)
Great post !
Thank you! There's another Kotlin post coming in a day or so too:)