Home About Contact
Azure

Azure App Services, WebApp + Database 覚え書き

Azure に入門した。 全くの素人なので、「Azure 入門ガイド改訂2版」を入手して臨んだ。 この本は Azure 全体像を把握する目的ならとても良い本ではある。 しかし、個々の機能についての詳細についてはまったく書かれていなかった。

とりあえず自分がつまずいた点を備忘録としてメモする。

App Services でアプリをつくるとき

Japan East とか West を最初選択してみたが、PostgreSQL は使えなかったようだ。 East Asia や Canada Central では PostgresSQL 使えた。

他にも考慮すべきことはあるのだろう。 今のところわからない。

Webアプリの Deployment 方法

Java 17 + Java SE(Embedded Web Server) を選択した場合 (OS: Linux):

startup.sh はこの app.jar を起動するためのコマンドをかく。

java -jar /home/site/wwwroot/app.jar -port=80

Azure の Web UI でも起動コマンドを記述する場所があるので、そっちに設定しても同じなのかもしれない。(が、試してはいない。)

Deployment 方法はいくつかあるようだが、az コマンドを使う方法にした。

Deploy を実行するためのシェルスクリプト:

#!/bin/bash

myres=hoge-resource-group
myappname=hoge

#az login

az webapp deploy --resource-group ${myres} --name ${myappname} --src-path ./app.jar --type jar --restart false
az webapp deploy --resource-group ${myres} --name ${myappname} --src-path ./startup.sh --type startup --restart true

az コマンドは Azure CLI のコマンド。

az webapp は一回で一つのファイルしか送れない(要確認)と思うので二度に分けて実行する。 --restart オプションを使うことでファイルを送ったあと restart をさせないことができるはずだが、 今試したときは意図通り機能しなかったような気がする(よくわからない)。

az webapp deploy したときに app.jar/home/site/wwwroot/app.jar に配置される決まりがあるようだ。

ソース: https://learn.microsoft.com/ja-jp/azure/app-service/deploy-zip?tabs=cli

Azure の Web UI で Azure のサーバー側で何が起きているかを LogStream でみることができる。 標準出力がブラウザで確認できるので、エラーになったときに何がだめなのかわかる。とても有用。

JDBC URL

App Services で Webアプリ + データベースで PostgreSQL を選択した場合にアプリ側で指定する JDBC の URL はこれ:

jdbc:postgresql://<your_postgresql_server_name>.postgres.database.azure.com:5432/<your_postgresql_db_name>

たとえば hoge という名前のアプリにした場合で データベースサーバーネームが hoge-server で データベース名が hoge-database の場合は、これ:

jdbc:postgresql://hoge-server.postgres.database.azure.com:5432/hoge-database

ソース: https://learn.microsoft.com/ja-jp/azure/postgresql/flexible-server/tutorial-webapp-server-vnet

課金

App Services をつくると、たとえそれを停止状態にしていても課金が続くらしい。 課金をさけたければ、リソースグループごと削除しておく必要がある。

リソースグループ名が hoge-resource-group だったならば:

$ az group delete --name hoge-resource-group --yes

これで削除できる。 リソースグループを削除するとそこに関連づけされたもろもろがすべてまとめて削除できるらしい。

追伸: サービスプランをみると B1 になっていた。 これを (事前にアプリは停止状態にした上で)Free にチェンジすることで 作成したアプリを維持したまま無料にできるらしい、との情報を得た。

まとめ

マイクロソフトのサービスなので避けてきたが、 (今のところ)思ったより使いやすい気がしている。