演習 - データベースに接続する

完了

Spring PetClinic アプリケーションを既定の H2 メモリ内データベースと共にデプロイしたため、PostgreSQL などのより強力で永続的なデータベースに接続できます。 永続データベースを使用すると、アプリケーションが再起動された場合でもアプリケーション データが確実に格納され、運用環境での使用に対する持続性とスケーラビリティが向上します。

このユニットは省略可能です。 データベース構成に既に慣れている場合は、スキップできます。

PostgreSQL サーバーを作成する

次のコマンドを使用して、データベース接続の作成に使用する環境変数を設定します。

export POSTGRESQLSERVER="petclinic-server"
export DATABASE="petclinic"

PostgreSQL の spring.profiles.active を更新する

次のコマンドを使用して、デプロイされたコンテナー アプリの環境変数を更新して、データベースを PostgreSQL として設定します。

az containerapp update \
    --resource-group $RESOURCE_GROUP \
    --name $APP_NAME \
    --set-env-vars "spring.profiles.active"="postgres"

新しいデータベースの作成

新しい PostgreSQL フレキシブル サーバー インスタンス内にデータベースを作成するには、次の手順に従います。

  1. 次のコマンドを使用して PostgreSQL フレキシブル サーバーを作成します。

    az postgres flexible-server create \
        --resource-group $RESOURCE_GROUP \
        --name $POSTGRESQLSERVER
    
  2. 自動生成された管理者のユーザー名とパスワードを出力から探し、これらの資格情報を安全な場所に保存します。 必要に応じて、後でデータベースの接続と構成に使用できます。

  3. 次のコマンドを使用して、PostgreSQL フレキシブル サーバー インスタンスに新しいデータベースを作成します。

    az postgres flexible-server db create \
        --resource-group $RESOURCE_GROUP \
        --database-name $DATABASE \
        --server-name $POSTGRESQLSERVER
    

    詳細については、「 クイック スタート: Azure Database for PostgreSQL - フレキシブル サーバーのインスタンスを作成する」を参照してください。

Service Connector 経由で接続する

次に、次の手順を使用して、以前にデプロイしたコンテナー アプリを PostgreSQL データベースに接続します。

  1. Azure portal で、Azure Container Apps インスタンスに移動します。

  2. 設定>Service Connector に移動します。

  3. [ 作成] を選択し、次の詳細を使用して接続フォームに入力します。

    • 基本:
      • サービスの種類には、DB for PostgreSQL フレキシブル サーバーを使用します。
      • PostgreSQL フレキシブル サーバーの場合は、petclinic-server を使用します
      • PostgreSQL データベースの場合は、petclinic を使用します。
      • クライアントの種類には、SpringBoot を使用します。
    • 認証:
      • [接続文字列] を選択します。
      • [ユーザー名] フィールドと [パスワード] フィールドの値を入力し、他のフィールドは既定の設定のままにします。

    [Service Connector (プレビュー)] ページと [接続の作成] ウィンドウを示す Azure portal のスクリーンショット。

  4. 変更を確認してデプロイします。

  5. デプロイの準備ができたら、[ 検証 ] を選択して接続の状態を検証します。

詳細については、「 マネージド ID を使用してシークレットを使用せずに Java Quarkus Container App から PostgreSQL Database に接続する」を参照してください。

データベースのセットアップを検証する

構成は完了です。 PostgreSQL データベースに接続すると、次の例に示すようなテーブルが作成されていることがわかります。

           List of relations
| Schema | Name            | Type  |
|--------|-----------------|-------|
| public | owners          | table |
| public | pets            | table |
| public | specialties     | table |
| public | types           | table |
| public | vet_specialties | table |
| public | vets            | table |
| public | visits          | table |