チュートリアル: 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 と統合する
警告
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フローでは、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、より安全なフローが実行可能ではない場合にのみ使用してください。
前提条件
- JDK 8 または JDK 11 をインストールする
- Azure サブスクリプションにサインアップする
- Azure CLI バージョン 2.0.67 以降をインストールし、コマンド
az extension add --name spring
を使用して Azure Spring Apps 拡張機能をインストールする
Azure Spring Apps のインスタンスをプロビジョニングする
次の手順では、Azure CLI 拡張機能を使用して、Azure Spring Apps のインスタンスをプロビジョニングします。
Azure Spring Apps 拡張機能で Azure CLI を更新します。
az extension update --name spring
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>
アプリと Azure Spring Apps サービスのインスタンスを含むリソース グループを作成します。
az group create --name ServiceConnector-tutorial-mysqlf --location eastus
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_superuser、azure_pg_admin、admin、administrator、root、guest、または 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 のドキュメントを参照してください。
アプリを構築してデプロイする
パブリック エンドポイントが割り当てられるアプリを作成します。 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
コマンド
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 リソース プロバイダーを登録し、接続コマンドを再度実行してください。サンプル コードを複製する
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-mysql-springboot.git
Maven を使用してプロジェクトをビルドします。
cd serviceconnector-springcloud-mysql-springboot mvn clean package -DskipTests
アプリ
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
次のコマンドを使用して、デプロイ後のアプリの状態を照会します。
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 の詳細については、以下のチュートリアルに従ってください。