Azure Spring Cloud Workshopをやってみた

Azure Spring CloudがGAになったので、Microsoft Learnで提供されているセルフラーニングハンズオンをやってみました。

 

docs.microsoft.com

 

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"となりますので注意しましょう。

f:id:akubicharm:20210312185852p:plain

サービスバインディング設定画面

 

todo-serviceのテスト用エンドポイントへのアクセス

 todo-serviceの概要ページの右Pane上部でAssigne endpointボタンをクリックしてエンドポイントを作成し、出来上がったURLにアクセスすると期待するJSONが取得できます。

 

すごく簡単にAzure Spring Cloudを試せるコンテンツになっていますので、是非、試してみてください。