Vert.xのWebアプリケーションをAzure App Serviceで動かす
これまで、いくつかのJava製WebフレームワークをAzure上で動かしてきました。
- Spring Boot on Azure
- Helidon on Azure
- Quarkus on Azure
今日はVert.xを試してみます。
プロジェクトはVert.x Starterで作りました。
ローカル環境での実行
HelidonやQuarkusを試したときと同じ環境を使いました。
Starterを解凍するとMainVerticle.javaが入っています。コードはそのまま使います。
package com.example.starter;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Promise;
public class MainVerticle extends AbstractVerticle {
@Override
public void start(Promise<Void> startPromise) throws Exception {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8888, http -> {
if (http.succeeded()) {
startPromise.complete();
System.out.println("HTTP server started on port 8888");
} else {
startPromise.fail(http.cause());
}
});
}
}
ビルドします。
mvn clean package
実行します。
java -jar target/*.jar
localhostにアクセスして以下表示になればOKです。
Azureでの実行
続いて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 8を選びました。
続いて手動でappSettingsを追加します。ポートはVert.xのコードにある通り8888にしました。
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.14.0</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<subscriptionId>xxxxx</subscriptionId>
<resourceGroup>demo-xxxxxxxxxxx-rg</resourceGroup>
<appName>demo-xxxxxxxxxx</appName>
<pricingTier>P1v2</pricingTier>
<region>westeurope</region>
<runtime>
<os>Linux</os>
<javaVersion>Java 8</javaVersion>
<webContainer>Java SE</webContainer>
</runtime>
<appSettings>
<property>
<name>PORT</name>
<value>8888</value>
</property>
<property>
<name>WEBSITES_PORT</name>
<value>8888</value>
</property>
<property>
<name>WEBSITES_CONTAINER_START_TIME_LIMIT</name>
<value>900</value>
</property>
</appSettings>
<deployment>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
</plugins>
ビルドしてデプロイします。
mvn clean package
mvn azure-webapp:deploy
問題なく表示されました。この感じだとどんなWebフレームワークでもAzure App Service上で動きそうです。
Author And Source
この問題について(Vert.xのWebアプリケーションをAzure App Serviceで動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/kikutaro/items/c3af93fba5bbdb91e147著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .