DEV Community

Dave Glover for Microsoft Azure

Posted on • Updated on

Get started with the new Kotlin Azure Functions Archetype and IntelliJ IDEA

Get started with the new Kotlin Azure Functions Archetype and IntelliJ IDEA

Author Dave Glover, Microsoft Cloud Developer Advocate
GitHub Get started with the new Kotlin Azure Functions Archetype and IntelliJ
Platform Azure Functions
Programming Language Kotlin
Date As at June 2019

This is an end to end walkthrough for creating Kotlin Azure Functions.

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

2. Set up your development environment

To develop a function with Java and IntelliJ, install the following software:

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

3. Create a Kotlin Azure Function Project

  1. From IntelliJ IDEA, select Create New Project.
  2. In the New Project window, select Maven from the left pane.
  3. Select the Create from archetype check box, and then select Add Archetype for the azure-functions-kotlin-archetype.
  4. 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.
    create new Kotlin project

  5. Enter your details for the current project, and select Next.
    create new kotlin project
    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

  6. Confirm the Maven Project Settings, and select Next.
    Maven summary

  7. Confirm Project Name and Location, and select Finish.
    create new kotlin project
    The project structure will be created.

Maven creates the project files in a new folder with the same name as the project ArtifactId value. The project's generated code is a simple HTTP-triggered function that echoes the body of the triggering HTTP request.

4. Enable Auto-Import

create new kotlin project

5. Azure Configuration

By default, the pom.xml file is opened when the project is created.

You can change the following project properties in the pom.xml file

  1. Azure Function App Name
  2. 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

create new kotlin project

6. 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.

create new kotlin project

7. 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.

8. Execute Azure Functions Run

From the Maven pop-out tab, expand Plugins, then expand azure-functions, then select 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-Kotlin link

create new kotlin project

TIP: The function runs in the context of a local process called func on port 7071. Sometimes this process does not close properly. If this happens, then next time you run the function it will complain that port 7071 is already open. You need to close the func process manually from the task/process manager of your operating system.

9. 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-Kotlin?name=dave and you will see the webpage echos the value passed in for name.

create new kotlin project

Alternatively, you can trigger the function from the command line using curl in a new terminal window:

curl -w '\n' -d Dave http://localhost:7071/api/HttpTrigger-Kotlin

10. Stop the function

Click the stop icon to stop the function from running.

create new kotlin project

11. Enable Debugging

Right mouse click on the azure-functions:run Maven Archetype and select Create 'glovebox-function [...

create new kotlin project

12. Create Run/Debug Configuration

  1. Rename the configuration to highlight that package will be run before azure-functions:run.
  2. Add -DenableDebug to the command line.

create new kotlin project

Add package

Click OK.

Click OK

13. Enable JVM Debugger Attach

From Run menu, select Edit Configuration

create new kotlin project

14. Add New Configuration

Click the + sign, then select Remote.

create new kotlin project

15. Name the New Configuration

In this case, the configuration is named Attach Debugger

create new kotlin project

Click OK

16. Set a breakpoint in the Kotlin Azure Function source

create new kotlin project

17. 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.

create new kotlin project

18. 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.

create new kotlin project

19. Initiate the Http Trigger in Debug Mode

  1. Select the Run tab.

  2. Click the http://localhost:7071/api/HttpTrigger-Kotlin link to initiate the Http Trigger.

create new kotlin project

20. Step through the Http Trigger Azure Function with the Debugger

Using the debugger controls, step through the Azure Function code.

kotlin debugging

21. Stop the Debugger and Azure Function

Click the Stop icon to detach the debugger and stop the Azure Function

create new kotlin project

22. Adding new Azure Function Triggers

azure-functions:add

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

Azure functions add

23. Deploying Kotlin Azure Functions to Azure

azure-functions:deploy

To deploy the staging directory to target Azure Functions. If target Azure Functions does not exist already, it will be created.

Azure functions deploy

Congratulations

You have created your first Kotlin based Azure Function

Congratulations

Next

Try out the Building a Serverless IoT Solution with Kotlin Azure Functions and SignalR

Building a Serverless IoT Solution with Kotlin Azure Functions and SignalR

Top comments (0)