MicronautのWebアプリケーションをAzure App Serviceで動かす


Azure App ServiceでSpring Boot以外にどんなWebフレームワークが動かせるのか?これまでいくつか試してきました。
- HelidonのWebアプリケーションをAzure App Serviceで動かす
- QuarkusのWebアプリケーションをAzure App Serviceで動かす
- Vert.xのWebアプリケーションをAzure App Serviceで動かす

今回はMicronautです。最初にMicronaut Launchでプロジェクトを作成しました。選択した項目は以下のとおりです。

ローカル環境での実行

Micronaut Launchで作成したプロジェクトを解凍して、こちらのドキュメントに従ってHelloControllerを追加します。

package com.example;

import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;

@Controller("/hello") 
public class HelloController {

    @Get(produces = MediaType.TEXT_PLAIN) 
    public String index() {
        return "Hello World"; 
    }
}

ビルドします。

mvn clean package

実行します。

java -jar target/*.jar

起動しました。

localhost:8080にアクセスすると以下のような表示になります。

localhost:8080/helloにアクセスするとHelloControllerの結果が返ります。

これをAzure App Serviceにデプロイしていきます。

Azureでの実行

最初にAzure CLIでログインしておきます。

az login

次にpom.xmlのbuildセクションに以下を追加します。

<plugin>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-webapp-maven-plugin</artifactId>
    <version>1.14.0</version>
</plugin>

以下コマンドを実行します。

mvn com.microsoft.azure:azure-webapp-maven-plugin:1.14.0:config

今回はlinux、Java 11を選びました。

ビルドしてデプロイします。

mvn clean package
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.14.0:deploy

デプロイできたら実際にアクセスしてみます。

問題なく表示されました。色々なJava Webフレームワークを試してきましたが、ほとんどのものをApp Service上で動かせる気がします。