最速で Azure App Service を立ち上げる
こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu から Azure App Service に Web アプリを最速でデプロイすることに挑戦します。
目的
Windows 11 の Linux でクラウド開発します。
こちらから記事の一覧がご覧いただけます。
実現すること
ローカル環境の Ubuntu から Azure App Service に、シェルスクリプトを用いて Spring Boot JAR ファイル形式のアプリをデプロイします。
はじめに
みなさん Azure を楽しんでますか?今回は趣向を変えて Azure App Service を最速で立ち上げることに挑戦してみたいと思います。
Microsoft Azure は、Web ブラウザから簡単にクラウド環境に Web アプリをアップロードできる環境があります。これにより、コマンドを入力する必要がなく、簡単に Azure に Web アプリをデプロイできます。この記事では学習のため、Ubuntu 上のシェルスクリプトから App Service を起動する方法を試みています。ご注意ください。
関連記事
他の Azure PaaS サービスと比較してみましょう!
開発環境
- Windows 11 Home 22H2 を使用しています。
WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。
WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Java JDK ※ こちらの関連記事からインストール方法をご確認いただけます
$ java -version
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
Maven ※ こちらの関連記事からインストール方法をご確認いただけます
$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.18, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Azure CLI ※ こちらの関連記事からインストール方法をご確認いただけます
$ az --version
azure-cli 2.45.0
core 2.45.0
telemetry 1.0.8
この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。
Spring Boot アプリを作成
こちらの関連記事で手順がご確認いただけます。
ここまでの作業で、プロジェクトフォルダに target/app.jar というファイル名の JAR ファイル形式の Web アプリが作成済みです。
プロジェクトフォルダに移動
プロジェクトフォルダに移動します。
※ ~/tmp/hello-spring-boot をプロジェクトフォルダとします。
$ cd ~/tmp/hello-spring-boot
App Service を立ち上げる
シェルスクリプトを作成します。
$ vim create_app_service.sh
状況により、次の3つのパラメータを変更してください。
No | 行 | パラメータ | 内容 |
---|---|---|---|
1 | resource_group_name=rg-hello | rg-hello | リソースグループの名前です。 |
2 | appservice_plan_name=asp-hello | asp-hello | App Service プランの名前です。 |
3 | webapp_name=app-hello-spring-boot | app-hello-spring-boot | App Service Web アプリの名前です。 |
ファイルの内容
#!/bin/sh
# set variables.
location_name=japaneast
resource_group_name=rg-hello
appservice_plan_name=asp-hello
webapp_name=app-hello-spring-boot
# create a resource group
az group create \
--name $resource_group_name \
--location $location_name
# create an app service plan.
az appservice plan create \
--resource-group $resource_group_name \
--name $appservice_plan_name \
--sku Free \
--is-linux
# create a webapp.
az webapp create \
--resource-group $resource_group_name \
--plan $appservice_plan_name \
--name $webapp_name \
--runtime "JAVA:11-java11"
# set a startup file to a webapp config.
az webapp config set \
--resource-group $resource_group_name \
--name $webapp_name \
--startup-file "java -jar /home/site/wwwroot/app.jar --server.port=80"
# deploy a webapp.
az webapp deploy \
--resource-group $resource_group_name \
--name $webapp_name \
--src-path target/app.jar \
--type jar
# run a webapp.
curl http://$webapp_name.azurewebsites.net/api/data -w '\n'
実行権限を付加します。
$ chmod +x create_app_service.sh
Azure にログインします。
$ az login
こちらの関連記事で手順がご確認いただけます。
シェルスクリプトを実行します。
$ ./create_app_service.sh
デプロイが完了すると以下の内容が表示されます。
{"message":"Hello World!"}
シェルスクリプトを実行するコマンドを叩いてから Hello World! が表示されるまで2分5秒でした。
Azure Portal を確認
このように App Service Web アプリが作成されています。
App Service を削除する
シェルスクリプトを作成します。
$ vim delete_resource_group.sh
次のパラメータは上で作成したものと合わせてください。
No | 行 | パラメータ | 内容 |
---|---|---|---|
1 | resource_group_name=rg-hello | rg-hello | リソースグループの名前です。 |
ファイルの内容
#!/bin/sh
# set variables.
resource_group_name=rg-hello
# delete resource group
az group delete \
--name $resource_group_name \
--yes
実行権限を付加します。
$ chmod +x delete_resource_group.sh
シェルスクリプトを実行します。
$ ./delete_resource_group.sh
削除中は以下のように表示されます。
/ Running ..
まとめ
Azure App Service 環境で、JAR ファイル形式の Spring Boot Web アプリを簡単に起動することができました。
実際の業務では、手動で App Service に Web アプリをデプロイすることもできます。例えば、Azure ポータル上で手動で設定を行ったり、さらに、CI/CD パイプラインを使用して自動的にデプロイすることもできます。しかし、このスクリプトを読むことで、App Service に Web アプリを配備するために必要な手順が理解できます。また、このスクリプトをさらに改良することに挑戦することもできます。
どうでしたか? WSL Ubuntu で、Azure クラウドアプリケーション開発環境を手軽に構築することができます。ぜひお試しください。今後も Azure の開発環境などを紹介していきますので、ぜひお楽しみにしてください。
推奨コンテンツ