次の方法で共有


チュートリアル: Azure Spring Apps にアプリケーションをデプロイし、Service Connector を使用して Azure Database for MySQL フレキシブル サーバーに接続する

このチュートリアルでは、Azure portal または Azure CLI を使用して、次のタスクを実行します。 以下の手順では、両方の方法を説明します。

  • Azure Spring Apps のインスタンスをプロビジョニングする
  • アプリをビルドして Azure Spring Apps にデプロイする
  • Service Connector を使用して Azure Spring Apps を Azure Database for MySQL と統合する

前提条件

Azure Spring Apps のインスタンスをプロビジョニングする

次の手順では、Azure CLI 拡張機能を使用して、Azure Spring Apps のインスタンスをプロビジョニングします。

  1. Azure Spring Apps 拡張機能で Azure CLI を更新します。

    az extension update --name spring
    
  2. Azure CLI にサインインし、アクティブなサブスクリプションを選択します。

    az login
    az account list -o table
    az account set --subscription <Name or ID of subscription, skip if you only have 1 subscription>
    
  3. アプリと Azure Spring Apps サービスのインスタンスを含むリソース グループを作成します。

    az group create --name ServiceConnector-tutorial-mysqlf --location eastus
    
  4. Azure Spring Apps のインスタンスを作成します。 その名前の長さは 4 文字から 32 文字にする必要があり、小文字、数字、ハイフンのみを使用できます。 Azure Spring Apps インスタンス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。

    az spring create -n my-azure-spring -g ServiceConnector-tutorial-mysqlf
    

Azure Database for MySQL フレキシブル サーバーを作成する

MySQL フレキシブル サーバー インスタンスを作成します。 次のコマンドで、<admin-username><admin-password> を任意の資格情報に置き換えて、MySQL フレキシブル サーバーの管理者ユーザーを作成します。 管理者のユーザー名に azure_superuserazure_pg_adminadminadministratorrootguest、または public は使用できません。 pg_ で始めることはできません。 パスワードは、8 から 128 文字で指定し、英大文字、英小文字、数字、および英数字以外の文字 (たとえば !#%) のうち 3 つのカテゴリの文字を含める必要があります。 パスワードに username を含めることはできません。

az mysql flexible-server create \
    --resource-group ServiceConnector-tutorial-mysqlf \
    --name mysqlf-server \
    --database-name mysqlf-db \
    --admin-user <admin-username> \
    --admin-password <admin-password>

サーバーは、手動でオーバーライドしない限り、以下の既定値で作成されます。

設定 既定値 説明
server-name システム生成 Azure Database for MySQL サーバーを識別する一意の名前。
sku-name GP_Gen5_2 SKU の名前。 省略表現の {価格レベル}_{コンピューティング世代}_{仮想コア} という規則に従います。 既定値は、2 個の仮想コアを備えた General Purpose Gen5 サーバーです。 価格の詳細については、価格に関するページを参照してください。
backup-retention 7 バックアップを保持する必要のある時間。 単位は日数です。
geo-redundant-backup 無効 このサーバーに対して geo 冗長バックアップを有効にする必要があるかどうかどうか。
location westus2 サーバーの Azure の場所。
ssl-enforcement Enabled このサーバーに対して SSL を有効にする必要があるかどうかどうか。
storage-size 5120 サーバーのストレージ容量 (単位はメガバイト)。
version 5.7 MySQL のメジャー バージョン。

注意

Standard_B1ms SKU は既定で使用されます。 価格の詳細については、Azure Database for MySQL の価格に関するページを参照してください。

注意

az mysql flexible-server create コマンドとその追加パラメーターの詳細については、Azure CLI のドキュメントを参照してください。

アプリを構築してデプロイする

  1. パブリック エンドポイントが割り当てられるアプリを作成します。 Azure Spring Apps プロジェクトの生成時に Java バージョン 11 を選択した場合は、--runtime-version=Java_11 スイッチを含めます。

    az spring app create -n hellospring -s my-azure-spring -g ServiceConnector-tutorial-mysqlf --assign-endpoint true
    
  2. コマンド az spring connection create を実行して、Azure Spring Apps にデプロイされたアプリケーションを MySQL フレキシブル サーバー データベースに接続します。 次のプレースホルダーを実際の情報に置き換えてください。

    az spring connection create mysql-flexible \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --service my-azure-spring \
        --app hellospring \
        --target-resource-group ServiceConnector-tutorial-mysqlf \
        --server mysqlf-server \
        --database mysqlf-db \
        --secret name=<admin-username> secret=<admin-secret>
    
    設定 説明
    --resource-group Azure Spring Apps によってホストされているアプリを含むリソース グループの名前。
    --service Azure Spring Apps リソースの名前。
    --app ターゲット サービスに接続する Azure Spring Apps によってホストされているアプリケーションの名前。
    --target-resource-group ストレージ アカウントを持つリソース グループの名前。
    --server 接続先の MySQL フレキシブル サーバー
    --database 前に作成したデータベースの名前
    --secret name MySQL フレキシブル サーバーのユーザー名。
    --secret MySQL フレキシブル サーバーのパスワード。

    Note

    "The subscription is not registered to use Microsoft.ServiceLinker (サブスクリプションが Microsoft.ServiceLinker を使用するように登録されていません)" というエラー メッセージが表示される場合は、az provider register -n Microsoft.ServiceLinker を実行して Service Connector リソース プロバイダーを登録し、接続コマンドを再度実行してください。

  3. サンプル コードを複製する

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
    
  4. Maven を使用してプロジェクトをビルドします。

    cd serviceconnector-springcloud-mysql-springboot
    mvn clean package -DskipTests 
    
  5. アプリ target/demo-0.0.1-SNAPSHOT.jar の JAR ファイルをデプロイします。

    az spring app deploy \
        --name hellospring \
        --service my-azure-spring \
        --resource-group ServiceConnector-tutorial-mysqlf \
        --artifact-path target/demo-0.0.1-SNAPSHOT.jar
    
  6. 次のコマンドを使用して、デプロイ後のアプリの状態を照会します。

    az spring app list  --resource-group ServiceConnector-tutorial-mysqlf --service my-azure-spring --output table
    

    次の出力が表示されます。

    Name         Location    ResourceGroup                     Public Url                                                 Production Deployment    Provisioning State    CPU    Memory    Running Instance    Registered Instance    Persistent Storage    Bind Service Registry    Bind Application Configuration Service
    -----------  ----------  --------------------------------  ---------------------------------------------------------  -----------------------  --------------------  -----  --------  ------------------  ---------------------  --------------------  -----------------------  ----------------------------------------
    hellospring  eastus      ServiceConnector-tutorial-mysqlf  https://my-azure-spring-hellospring.azuremicroservices.io  default                  Succeeded             1      1Gi       1/1                 0/1                    -                     -
    
    

次のステップ

Service Connector の詳細については、以下のチュートリアルに従ってください。