0
0

最速で Azure Spring Apps (ASA) を立ち上げる

Last updated at Posted at 2023-03-17

最速で Azure Spring Apps (ASA) を立ち上げる

こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu から Azure Spring Apps に Web アプリを最速でデプロイすることに挑戦します。
spring-boot_on_azure-spring-apps.png

目的

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 アプリの名前です。
create_spring_apps.sh
#!/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 を確認

image.png
このように Azure Spring Apps アプリが作成されています。

Spring Apps を削除する

シェルスクリプトを作成します。

$ vim delete_resource_group.sh

次のパラメータは上で作成したものと合わせてください。

No パラメータ 内容
1 resource_group_name=rg-hello rg-hello リソースグループの名前です。

ファイルの内容

delete_resource_group.sh
#!/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 の開発環境などを紹介していきますので、ぜひお楽しみにしてください。

推奨コンテンツ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0