Spring Boot 製 Web アプリケーションを Microsoft Azure の App Service で動かす

Spring Boot を使って作成した Web アプリケーションを、 Microsoft Azure の App Service で動かすことができたので、 手順をメモしておく。

App Service で Web App を作成

Microsoft Azure ポータルの App Service ページで、 SQL とか付いてない Web App を新規作成する。

Java 8 を有効化

作成した Web App のアプリケーションの設定で、Java 8 を選択する。 Web コンテナーは使わないけど選択しておかなければいけないみたいなので、 最新の Tomcat にしておく。

web.config を作成

Spring Boot 組み込みの Tomcat を使って動かすために、 web.config を用意する必要がある。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="%JAVA_HOME%\bin\java.exe"
        arguments="-Djava.net.preferIPv4Stack=true -Dserver.port=%HTTP_PLATFORM_PORT% -jar &quot;%HOME%\site\wwwroot\<jar ファイル名>&quot;">
    </httpPlatform>
  </system.webServer>
</configuration>

Spring Boot 製 Web アプリケーションをビルド

ビルドツールには Gradle を使っているので、gradle build を実行。 すると build\libs 下に jar ファイルが出力される。

Web App にアップロード

web.config と jar ファイルを、App Service に作成した Web App にアップロードする。 ファイルのアップロードは FTP ではなく、App Service Editor(プレビュー)を使って行う。

wwwroot 直下に、web.config と jar ファイルをアップロードすれば OK。

再起動

あとは Web App を再起動すれば、Spring Boot 製 Web アプリケーションが動く。