🌏

Spring BootをAzure App Serviceにデプロイする(Github Actions)

2022/11/28に公開

javaアプリをAzure App Service(Web Apps)で稼働させることになりました。ポイントは以下のとおりです。

  • 検証目的なので、なるべく楽をする
  • 何度もデプロイするので、Github Actionsを利用してデプロイを自動化する

Spring Bootアプリの作成

Spring Initializerという、Web上でサンプルアプリを作成してダウンロードできるサービスがあるので利用します。便利ですね。
https://start.spring.io/

  1. 以下の通りに設定します。
    • Project: Maven
    • Language: Java
    • Spring Boot: 2.7.6
    • Packaging: Jar
    • Java: 17
  2. ADD DEPENDENCIESをクリック
    • Spring Webを追加
  3. GENERATEをクリック

ダウンロードできたら、DemoApplication.javaを開いてResponseを返すように変更します。

DemoApplication.java
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	@GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}

コードはGithubにpushしておきましょう。

Azure App Service(Web Apps)の作成

javaアプリを稼働させるためのApp Serviceを作成します。App Serviceはアプリケーションをホストするサービスの総称ですが、今回はJavaの動的アプリケーションなので、Web Appsを作成します。

  1. https://portal.azure.com/ にアクセス
  2. Web Appsを選択して、以下の通りに設定
    • 公開: コード
    • ランタイムスタック: Java17
    • Java Webサーバーのスタック: Java SE(Embedded Web Server)
    • オペレーティングシステム: Linux
    • その他: 適当でOK
  3. 確認および作成をクリック

CDを構築してデプロイを自動化する

ブランチが更新されるとWeb Appsに自動でデプロイするようにします。Web Apps側から設定をすると、自動でGithubリポジトリにworkflowファイルを作成してくれます。

  1. App Serviceのデプロイセンターを開く
  2. 以下の通りに設定
    • ソース: Github
    • 次のユーザーとしてサインイン: 初回の場合はGithub連携します
    • 組織: 先のコードをpushしたリポジトリがある組織
    • リポジトリ: 先のコードをpushしたリポジトリ
    • ブランチ: デプロイするブランチ
  3. 保存をクリック
  4. Githubを開いて、自動生成されたworkflowを編集
    - run: mvn clean install
    + run: ./mvnw package
    
  5. 変更をコミット して、workflowを実行します

無事にデプロイが完了しました。

動作確認

ブラウザやVS CodeのREST Clientで以下のURLにアクセスしましょう。
https://{AppServiceのURL}/hello

Hello Worldが返ってきたら成功です!

スタジオメッシュ

Discussion