Share via


Azure Database for MySQL インスタンスを Azure Spring Apps 内のアプリケーションに接続する

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Java ✔️ C#

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

Azure Spring Apps では、Spring Boot アプリケーションを手動で構成せずに、選択した Azure サービスをアプリケーションに自動的に接続できます。 この記事では、アプリケーションを Azure Database for MySQL インスタンスに接続する方法について説明します。

前提条件

プロジェクトを準備する

  1. プロジェクトの pom.xml ファイルに、次の依存関係を追加します。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-jdbc-mysql</artifactId>
    </dependency>
    
  2. application.properties ファイルから、spring.datasource.* プロパティをすべて削除します。

  3. az spring app deploy を実行して現在のアプリを更新するか、az spring app deployment create を実行してこの変更のための新しいデプロイを作成します。

アプリを Azure Database for MySQL インスタンスに接続する

Note

既定では、Service Connector はアプリケーション レベルで作成されます。 接続をオーバーライドするには、デプロイで他の接続をもう一度作成します。

システム割り当てマネージド ID を使用して Azure Database for MySQL フレキシブル サーバーに接続するように Spring アプリを構成するには、以下の手順に従います。

  1. 次のコマンドを使用して Azure CLI 用 Service Connector パスワードレス拡張機能をインストールします。

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. その後、次のコマンドを使用して、Microsoft Entra 認証用のユーザー割り当てマネージド ID を作成します。 この例の変数は必ず実際の値に置き換えてください。 詳細については、「Azure Database for MySQL - フレキシブル サーバーの Microsoft Entra 認証を設定する」を参照してください。

    export AZ_IDENTITY_RESOURCE_ID=$(az identity create \
        --name $AZURE_USER_IDENTITY_NAME \
        --resource-group $AZURE_IDENTITY_RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. 次の例に示すように、az spring connection create コマンドを実行します。 この例の変数は必ず実際の値に置き換えてください。

    az spring connection create mysql-flexible \
        --resource-group $AZURE_SPRING_APPS_RESOURCE_GROUP \
        --service $AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME \
        --app $APP_NAME \
        --target-resource-group $MYSQL_RESOURCE_GROUP \
        --server $MYSQL_SERVER_NAME \
        --database $DATABASE_NAME \
        --system-identity mysql-identity-id=$AZ_IDENTITY_RESOURCE_ID
    

次のステップ

この記事では、Azure Spring Apps 内のアプリケーションを Azure Database for MySQL インスタンスに接続する方法について学習しました。 サービスをアプリケーションに接続する方法の詳細については、「Azure Cosmos DB データベースを Azure Spring Apps アプリケーションに接続する」を参照してください。