Azure に入門した。 全くの素人なので、「Azure 入門ガイド改訂2版」を入手して臨んだ。 この本は Azure 全体像を把握する目的ならとても良い本ではある。 しかし、個々の機能についての詳細についてはまったく書かれていなかった。
とりあえず自分がつまずいた点を備忘録としてメモする。
Japan East とか West を最初選択してみたが、PostgreSQL は使えなかったようだ。 East Asia や Canada Central では PostgresSQL 使えた。
他にも考慮すべきことはあるのだろう。 今のところわからない。
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 でみることができる。 標準出力がブラウザで確認できるので、エラーになったときに何がだめなのかわかる。とても有用。
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 にチェンジすることで 作成したアプリを維持したまま無料にできるらしい、との情報を得た。
マイクロソフトのサービスなので避けてきたが、 (今のところ)思ったより使いやすい気がしている。