最速で Azure Spring Apps (ASA) を立ち上げる
こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu から Azure Spring Apps に Web アプリを最速でデプロイすることに挑戦します。
目的
Windows 11 の Linux でクラウド開発します。
こちらから記事の一覧がご覧いただけます。
実現すること
ローカル環境の Ubuntu から Azure Spring Apps に、シェルスクリプトを用いて Spring Boot JAR ファイル形式のアプリをデプロイします。
はじめに
みなさん Azure を楽しんでますか?今回は趣向を変えて Azure Spring Apps を最速で立ち上げることに挑戦してみたいと思います。
Microsoft Azure は、Web ブラウザから簡単にクラウド環境に Web アプリをアップロードできる環境があります。これにより、コマンドを入力する必要がなく、簡単に Azure に Web アプリをデプロイできます。この記事では学習のため、Ubuntu 上のシェルスクリプトから Spring Apps を起動する方法を試みています。ご注意ください。
関連記事
他の 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
Spring Apps を立ち上げる
シェルスクリプトを作成します。
$ vim create_spring_apps.sh
状況により、次の3つのパラメータを変更してください。
No | 行 | パラメータ | 内容 |
---|---|---|---|
1 | resource_group_name=rg-hello | rg-hello | リソースグループの名前です。 |
2 | spring_service_name=aps-hello | aps-hello | Spring Apps サービスの名前です。 |
3 | spring_app_name=sap-hello-spring-boot | sap-hello-spring-boot | Spring Apps アプリの名前です。 |
#!/bin/sh
# set variables.
location_name=japaneast
resource_group_name=rg-hello
spring_service_name=aps-hello
spring_app_name=sap-hello-spring-boot
# create a resource group
az group create \
--name $resource_group_name \
--location $location_name
# create a spring service.
az spring create \
--resource-group $resource_group_name \
--name $spring_service_name \
--location $location_name \
--sku Basic
# create a spring app.
az spring app create \
--resource-group $resource_group_name \
--service $spring_service_name \
--name $spring_app_name \
--runtime-version Java_11 \
--assign-endpoint true
# deploy a spring app.
az spring app deploy \
--resource-group $resource_group_name \
--service $spring_service_name \
--name $spring_app_name \
--artifact-path target/app.jar
# get a spring service id.
spring_service_id=$(az spring list \
--query "[0].id" \
-o tsv)
# get a signed in user id.
signed_in_user_id=$(az ad signed-in-user show \
--query id \
-o tsv)
# create a spring app connect role.
az role assignment create \
--role 'Azure Spring Apps Connect Role' \
--scope $spring_service_id \
--assignee $signed_in_user_id
# get a spring app data.
curl https://$spring_service_name-$spring_app_name.azuremicroservices.io/api/data -w '\n'
実行権限を付加します。
$ chmod +x create_spring_apps.sh
Azure にログインします。
$ az login
こちらの関連記事で手順がご確認いただけます。
シェルスクリプトを実行します。
$ ./create_spring_apps.sh
デプロイが完了すると以下の内容が表示されます。
{"message":"Hello World!"}
シェルスクリプトを実行するコマンドを叩いてから Hello World! が表示されるまで18分14秒でした。
Azure Portal を確認
このように Azure Spring Apps アプリが作成されています。
Spring Apps を削除する
シェルスクリプトを作成します。
$ 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 Spring Apps 環境で、JAR ファイル形式の Spring Boot Web アプリを簡単に起動することができました。
実際の業務では、手動で Spring Apps に Web アプリをデプロイすることもできます。例えば、Azure ポータル上で手動で設定を行ったり、さらに、CI/CD パイプラインを使用して自動的にデプロイすることもできます。しかし、このスクリプトを読むことで、Spring Apps に Web アプリを配備するために必要な手順が理解できます。また、このスクリプトをさらに改良することに挑戦することもできます。
どうでしたか? WSL Ubuntu で、Azure クラウドアプリケーション開発環境を手軽に構築することができます。ぜひお試しください。今後も Azure の開発環境などを紹介していきますので、ぜひお楽しみにしてください。
推奨コンテンツ