0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最速で Azure App Service を立ち上げる

Last updated at Posted at 2023-03-15

最速で Azure App Service を立ち上げる

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

目的

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 アプリの名前です。

ファイルの内容

create_app_service.sh
#!/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 を確認

tmp.png
このように App Service Web アプリが作成されています。

App Service を削除する

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

$ 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 App Service 環境で、JAR ファイル形式の Spring Boot Web アプリを簡単に起動することができました。

実際の業務では、手動で App Service に Web アプリをデプロイすることもできます。例えば、Azure ポータル上で手動で設定を行ったり、さらに、CI/CD パイプラインを使用して自動的にデプロイすることもできます。しかし、このスクリプトを読むことで、App Service に 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?