Azure Spring Cloud Workshopをやってみた
Azure Spring CloudがGAになったので、Microsoft Learnで提供されているセルフラーニングハンズオンをやってみました。
Microsoft Learnって何?
Microsoft Learn は、Microsoft 製品についての対話式学習などを提供する無料のオンライン トレーニング プラットフォームです。Azureのサービスのワークショップには、Azureのサブスクリプションをお持ちでない方も、Sandboxでお試しいただくことができるものもあります。
Azure Spring Cloudって何?
Spring Boot アプリ向けのフル マネージド サービスです。ユーザーはインフラストラクチャの管理に煩わされることなく、アプリの構築と実行に集中できます。
特徴としては、こんな感じでしょうか。
- Spring Bootのアプリケーションから、Azureのサービス(例えば、データベースサーバ)などを簡単にBindして利用
- Azure Monitorを活用して、Logの可視化、JVMのメトリクスの取得、分散トレーシングが可能
- Spring BootアプリケーションのScale Out/In、Scale Up/Downが用意
Azure Spring Cloud: Spring Boot アプリのフル マネージド サービスを一般提供開始 | Azure のブログと更新プログラム | Microsoft Azure
ワークショップをやるときのハマりポイント
ワークショップをやるときにちょっとだけハマりポイントがありましたので、みなさんがハマらないようにちょっとだけ説明します。
このワークショップを実施するには、AzureのSubscriptionが必要です。
ワークショップは手短に特徴がわかるような内容になっており、8つのユニットから構成されています。
Azure Spring Cloudを生成する
まずは、Azure Spring Cloudのインスタンスを生成していきます。
ここで注意しないといけないポイントは、次の通りです。
RESOURCE_GROUP_NAMEには、任意のリソースグループ名を設定し、SPRING_CLOUD_NAMEにはAzure Spring Cloudのインスタンス名を設定して、Azure Spring Cloudをデプロイします。
az spring-cloud create -g "$RESOURCE_GROUP_NAME" -n "$SPRING_CLOUD_NAME" --sku standard --enable-java-agent
MySQLをデプロイする
az コマンドで mysqlをデプロイする場合には、--admin-password オプションは必須なので忘れずにつけましょう。
MySQLをアプリケーションにバインドする
Azure Spring CloudのアプリケーションのサービスバインディングでAzure Database for MySQLのユーザを指定する場合、ユーザ名@MySQLリソース名になるので注意が必要です。
接続アーキテクチャ - Azure Database for MySQL | Microsoft Docs
az mysql server create コマンドで、--nameオプションで "${SPRING_CLOUD_NAME}-mysql"、--admin-userオプションで "spring" と指定した場合は、サービスバインディグするときのユーザ名は"spring@${SPRING_CLOUD_NAME}-mysql"となりますので注意しましょう。
todo-serviceのテスト用エンドポイントへのアクセス
todo-serviceの概要ページの右Pane上部でAssigne endpointボタンをクリックしてエンドポイントを作成し、出来上がったURLにアクセスすると期待するJSONが取得できます。
すごく簡単にAzure Spring Cloudを試せるコンテンツになっていますので、是非、試してみてください。