注
Basic、Standard、および Enterprise プランは、2025 年 3 月 17 日に廃止期間に入りました。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
この記事の適用対象:✅ Basic/Standard ❎ Enterprise
既定の構成「クイックスタート: アプリをビルドして Azure Spring Apps にデプロイする」でデプロイされた Pet Clinic では、起動時にデータが入力されるメモリ内データベース (HSQLDB) が使用されます。 このクイックスタートでは、Azure Database for MySQL インスタンスをプロビジョニングして準備し、これを永続的なデータベースとして使用するように Azure Spring Apps で Pet Clinic を構成する方法について説明します。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure Database for MySQL インスタンスを作成する
az mysql flexible-server create コマンドを使用して、Azure Database for MySQL フレキシブル サーバーを作成します。 プレースホルダー<database-name>、<resource-group-name>、<MySQL-flexible-server-name>、<admin-username>、<admin-password> を、新しいデータベースの名前、リソース グループの名前、新しいサーバーの名前、管理者のユーザー名とパスワードに置き換えます。
admin-password の値を単一引用符を使用して囲みます。
az mysql flexible-server create \
--resource-group <resource-group-name> \
--name <MySQL-flexible-server-name> \
--database-name <database-name> \
--public-access 0.0.0.0 \
--admin-user <admin-username> \
--admin-password '<admin-password>'
注
デフォルトでは Standard_B1ms SKU が使用されます。 価格の詳細については、Azure Database for MySQL の価格に関するページを参照してください。
ヒント
パスワードは長さが 8 文字以上で、英大文字、英小文字、数字、英数字以外の文字 (!、$、#、% など) を 1 つ以上含んでいる必要があります。
アプリケーションを MySQL データベースに接続する
Service Connector を使用して、Azure Spring Apps でホストされているアプリを MySQL データベースに接続します。
注
Azure Spring Apps のサービス バインド機能は、Service Connector を優先して非推奨とされています。
Service Connector を初めて使用する場合は、まずコマンド az provider register を実行して Service Connector リソース プロバイダーを登録します。
az provider register --namespace Microsoft.ServiceLinkeraz spring connection createコマンドを実行して、customers-serviceアプリと Azure MySQL データベースの間にサービス接続を作成します。 次の設定のプレースホルダーは独自の情報に置き換えてください。 MySQL サーバーsecretの値を単一引用符を使用して囲みます。設定 説明 --connectionアプリとターゲット サービスの間の接続を識別する接続の名前。 --resource-groupAzure Spring Apps によってホストされているアプリを含むリソース グループの名前。 --serviceAzure Spring Apps リソースの名前。 --appターゲット サービスに接続する Azure Spring Apps によってホストされているアプリケーションの名前。 --target-resource-groupストレージ アカウントを持つリソース グループの名前。 --server接続先の MySQL サーバー --database前に作成したデータベースの名前 --secret name= secret=MySQL サーバーのユーザー名とパスワード。 az spring connection create mysql-flexible \ --resource-group <Azure-Spring-Apps-resource-group-name> \ --service <Azure-Spring-Apps-resource-name> \ --app customers-service \ --connection <mysql-connection-name-for-app> \ --target-resource-group <mySQL-server-resource-group> \ --server <server-name> \ --database <database-name> \ --secret name=<username> secret='<secret>'ヒント
コマンド
az springがシステムに認識されない場合は、az extension add --name springを実行して、 Azure Spring Apps 拡張機能がインストールされていることを確認します。
これらの手順を繰り返して、customers-service、vets-service、visits-service の各アプリケーションの接続を作成します。
MySQL データベースへの接続を確認する
az spring connection validate コマンドを実行して、customers-service アプリと Azure MySQL データベースの間の接続のステータスを表示します。 プレースホルダーは独自の情報に置き換えてください。
az spring connection validate \
--resource-group <Azure-Spring-Apps-resource-group-name> \
--service <Azure-Spring-Apps-resource-name> \
--app customers-service \
--connection <mysql-connection-name-for-app> \
--output table
次の出力が表示されます。
Name Result Description
------------------------------------ -------- -------------
Target resource existence validated. success
Target service firewall validated. success
Username and password validated. success
ヒント
サービス間の接続の詳細を取得するには、上記のコマンドから --output table を削除します。
これらの手順を繰り返して、customers-service、vets-service、visits-service の各アプリケーションの接続を検証します。
MySQL プロファイルを使用するようにアプリを更新する
次のセクションでは、MySQL データベースに接続するようにアプリを更新する方法について説明します。
次のコマンドを使用して、mysql アプリの customers-service プロファイルをアクティブにする環境変数を設定します。
az spring app update \
--resource-group <Azure-Spring-Apps-resource-group-name> \
--service <Azure-Spring-Apps-resource-name> \
--name customers-service \
--env SPRING_PROFILES_ACTIVE=mysql
これらの手順を繰り返して、customers-service、vets-service、visits-service の各アプリケーションのアプリ構成を更新します。
アプリを検証する
Pet Clinic サービスを検証し、MySQL データベースからレコードにクエリを実行してデータベース接続を確認するには、「クイック スタート: アプリをビルドして Azure Spring Apps にデプロイする」の「サービスを確認する」セクションの手順に従います。
リソースをクリーンアップする
後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 不要になったら、az group delete コマンドを使用してリソース グループを削除します。これにより、リソース グループ内のリソースが削除されます。
<resource-group> は、リソース グループの名前に置き換えます。
az group delete --name <resource-group>