この記事の適用対象:✅ Standard 従量課金および専用 (プレビュー) ✅ Basic/Standard ✅ Enterprise
この記事では、Spring Boot イベント ドリブン アプリケーションを Azure Spring Apps にデプロイする方法について説明します。
サンプル プロジェクトは、lower-case
という名前の Service Bus キューをサブスクライブし、メッセージを処理し、別のメッセージを upper-case
という名前の別のキューに送信するイベント ドリブン アプリケーションです。 アプリをシンプルにするために、メッセージ処理はメッセージを大文字に変換するだけです。 次の図はこのプロセスを示しています。
この記事では、Azure Spring Apps にデプロイするための次のオプションについて説明します。
-
Azure portal オプションは、1 回のクリックでリソースを作成してアプリケーションをデプロイできる最も簡単で最速の方法です。 このオプションは、Azure クラウド サービスにアプリケーションをj迅速にデプロイしたい Spring 開発者に適しています。
-
Azure portal と Maven プラグインのオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
-
Azure Developer CLI オプションは、単純なコマンドを使用して、自動的にリソースを作成し、アプリケーションをデプロイする、より効率的な方法です。 Azure Developer CLI では、テンプレートを使用して、必要な Azure リソースをプロビジョニングし、アプリケーション コードをデプロイします。 このオプションは、Azure クラウド サービスに精通している Spring 開発者に適しています。
-
Azure portal のオプションは、1 回のクリックでリソースを作成してアプリケーションをデプロイできる最も簡単で最速の方法です。 このオプションは、Azure クラウド サービスにアプリケーションをj迅速にデプロイしたい Spring 開発者に適しています。
-
Azure portal と Maven プラグインのオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
-
Azure CLI のオプションは、強力なコマンド ライン ツールを使用して、Azure リソースを管理します。 このオプションは、Azure クラウド サービスに精通している Spring 開発者に適しています。
1.前提条件
2. Spring プロジェクトを準備する
次の手順を使用して、サンプルをローカルに準備します。
サンプル プロジェクトは GitHub で準備ができています。 次のコマンドを使用して、サンプル プロジェクトを複製します:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
次のコマンドを使用して、サンプル プロジェクトをビルドします。
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
次の手順を使用して、サンプルをローカルに準備します。 これらの手順では、AZD を使用して、Azure Developer CLI テンプレートからイベント 駆動型 アプリケーションを初期化します。
ターミナルを開き、空のフォルダーを新規作成し、そのフォルダに移動します。
次のコマンドを実行して、以下のプロジェクトを初期化します:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
次の一覧に、コマンド対話を記載します。
-
[Enter a new environment name]: 環境名を指定します。これは、すべての Azure リソースを保持するために作成されたリソース グループのサフィックスとして使用されます。 この名前は、Azure サブスクリプション内で一意である必要があります。
コンソールから、次の例のようなメッセージが出力されます。
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3. クラウド環境を準備する
このサンプルを実行するために必要な主なリソースは、Azure Spring Apps インスタンス、Azure Key Vault、Azure Service Bus インスタンスです。 次の手順を使用して、これらのリソースを作成します。
このセクションでは、[Azure へのデプロイ] ボタンを使用して、Azure portal でデプロイ エクスペリエンスを起動します。 このエクスペリエンスでは、ARM テンプレートを使用して Azure リソースを作成します。
3.1. Azure portal にサインインする
Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Azure リソースを作成する
次の手順を使用して、アプリが依存するすべての Azure リソースを作成します。
次の [Azure へのデプロイ] ボタンを選択して、Azure portal でデプロイ エクスペリエンスを起動します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
リージョン |
ユーザーに最も近いリージョン。 |
このリージョンは、リソース グループの作成に使用されます。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択してアプリを Azure Spring Apps にデプロイします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
3.1. Azure portal にサインインする
Web ブラウザーを開き、Azure portal に移動します。 資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
Azure portal の隅にある [リソースの作成] を選択します。
サービスとマーケットプレースの検索 検索ボックスで [サービスバス] を検索します。
[Service Bus] セクションで、 [作成] を選択します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前空間名 |
my-srvbus |
Service Bus サービスを識別する一意の名前。 |
場所 |
ユーザーに最も近い場所。 |
ユーザーに最も近い場所。 |
ホスティング オプションとプラン |
Basic |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
[確認と作成] を選択して、作成パラメータを確認します。 次に、[作成] を選択して、Service Bus インスタンスの作成を完了します。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
[リソースに移動] を選択して、[Service Bus 名前空間] ページに移動します。
ナビゲーション メニューで [共有アクセス ポリシー] を選択し、[RootManageSharedAccessKey] を選択します。
[SAS Policy: RootManageSharedAccessKey] ページで、Spring アプリからの接続を設定するために使用される [プライマリ接続文字列] の値をコピーして保存します。
ナビゲーション メニューで [キュー] を選択し、[キュー] を選択します。
[キューの作成] ページで、[名前] に "小文字" を入力し、[作成] を選択します。
[名前] に "大文字" を使用して前の手順を繰り返し、別のキューを作成します。
3.3. Azure Spring Apps インスタンスを作成する
次の手順を使用して、サービス インスタンスを作成します。
ポータルの隅にある [リソースの作成] を選択します。
[Compute]>[Azure Spring Apps] を選択します。
[Standard consumption & dedicated (preview)] (Standard 従量課金と専用 (プレビュー)) フォームに次の情報を入力します。
設定 |
提案された値 |
説明 |
サブスクリプション |
お使いのサブスクリプション名 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
プラン |
Standard consumption & dedicated (プレビュー) |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
リージョン |
ユーザーに最も近いリージョン |
ユーザーに最も近い場所。 |
Container Apps 環境 |
myacaenv |
環境とは、相互に通信し、仮想ネットワーク、ログ、Dapr 構成を共有できる 1 つ以上のコンテナー アプリを囲む、セキュリティで保護された境界です。 |
(省略可能) 次の手順を使って、Container Apps 環境を作成します。
[基本] タブに次の情報を入力します。
-
環境名: myacaenv
-
プラン: 従量課金
-
ゾーン冗長: 無効
[作成] を選んで、Container Apps 環境を作成します。
[基本] タブに次の情報を入力します。
-
環境名: myacaenv
-
プラン: (Preview) Consumption and Dedicated workload profiles ((プレビュー) 従量課金と専用ワークロード プロファイル)
-
ゾーン冗長: 無効
[ワークロード プロファイル (プレビュー)] タブを選んでから、[ワークロード プロファイルの追加] を選んでワークロード プロファイルを追加します。
[ワークロード プロファイルの追加 (プレビュー)] ページで、次の情報を追加します。
-
Workload profile name (ワークロード プロファイル名): my-wlp
-
Workload profile size (ワークロード プロファイルのサイズ): [Dedicated-D4] を選びます
-
Autoscaling instance count range (自動スケーリングのインスタンス数の範囲): 3 と 5 を選びます
[追加] を選択します。 これを選ぶと、[ワークロード プロファイルの追加 (プレビュー)] ページに戻ります。
my-wlp を選んでから、[作成] を選んで Container Apps 環境を作成します。
Review and Create(確認と作成) を選択して、選択内容を確認します。
[作成] を選択して、Azure Spring Apps インスタンスをプロビジョニングします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[リソースに移動] を選択すると、サーバーの [概要] ページが開きます。
[リソースに移動] を選択して、[Azure Spring Apps Overview](Azure Spring Apps の概要) ページに移動します。
左側のナビゲーション メニューで [アプリ] を選んで、[アプリの作成] を選びます。
[アプリの作成] ページで、[アプリ名] に「simple-event-driven-app
」と入力してから、[Use quick start sample app] (クイック スタート サンプル アプリを使用する) を選んでアプリを作成します。
[作成] を選んで、Azure Spring Apps インスタンスの作成を完了します。
アプリの作成後、前の手順で作成したアプリ名を選択します。
ナビゲーション ウィンドウで [構成] を選んでから、[環境変数] タブで次のプロパティを構成します。
-
SERVICE_BUS_CONNECTION_STRING: Service Bus のプライマリ接続文字列を入力します。
[保存] を選んで、接続のプロパティを保存します。
次のコマンドを使用して、OAuth2 を使用して Azure にログインします。 既にログインしている場合は、この手順は無視してください。
azd auth login
コンソールから、次の例のようなメッセージが出力されます。
Logged in to Azure.
次のコマンドを使って、テンプレートのインフラストラクチャを Azure にプロビジョニングします。
azd provision
次の一覧に、コマンド対話を記載します。
-
[Please select an Azure Subscription to use] (使用する Azure サブスクリプションを選択してください): 矢印を使って移動し、入力してフィルター処理してから、Enter キーを押します。
-
[Please select an Azure location to use] (使用する Azure の場所を選択してください): 矢印を使って移動し、入力してフィルター処理してから、Enter キーを押します。
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name>-<random-string>> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
このコマンドは、完了するまで時間がかかる場合があります。 Azure リソースがプロビジョニングされると、進行状況インジケーターが表示されます。
4. アプリを Azure Spring Apps にデプロイする
前のセクションの [Azure へのデプロイ] ボタンにより、アプリケーションのデプロイを含む Azure portal エクスペリエンスが起動されるため、他に何も必要ありません。
次の手順に従って、Azure Spring Apps 用の Maven プラグインを使用してデプロイします。
complete ディレクトリに移動し、次のコマンドを使用して Azure Spring Apps のアプリを構成します。
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
次の一覧に、コマンド対話を記載します。
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
Select subscription (サブスクリプションを選択してください): 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure で既存の Azure Spring Apps を使う: 既存の Azure Spring Apps インスタンスを使うには、y キーを押します。
-
Select Azure Spring Apps for deployment (デプロイ用の Azure Spring Apps を選択してください): 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure Spring Apps <your-instance-name> で既存のアプリを使う: 作成したアプリを使うには、y キーを押します。
-
上記のすべての構成の保存を確定する: y キーを押します。
n を押した場合、構成は POM ファイルに保存されません。
次のコマンドを使用して、アプリをデプロイします。
./mvnw azure-spring-apps:deploy
次の一覧に、コマンド対話を記載します:
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
コマンドが実行されると、デプロイが成功したことを示す次のログ メッセージが表示されます。
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
次の手順を使用して、アプリをパッケージ化し、Web アプリケーションに必要な Azure リソースをプロビジョニングしてから、Azure Spring Apps にデプロイします。
次のコマンドを実行して、アプリケーションのデプロイ可能なコピーをパッケージ化します:
azd package
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was packaged for Azure in xx seconds.
次のコマンドを実行して、新しくプロビジョニングされたリソースにアプリケーション コードをデプロイします:
azd deploy
コンソールから、次の例のようなメッセージが出力されます。
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Note
azd up
を使って、前の 3 つのコマンド azd provision
(Azure リソースをプロビジョニングする)、azd package
(アプリケーションのデプロイ可能なコピーをパッケージ化する)、azd deploy
(アプリケーション コードをデプロイする) を組み合わせることもできます。 詳細については、「Azure-Samples/ASA-Samples-Web-Application」 を参照してください。
2. Spring プロジェクトを準備する
次の手順を使用して、サンプルをローカルに準備します。
サンプル プロジェクトは GitHub で準備ができています。 次のコマンドを使用して、サンプル プロジェクトを複製します:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
次のコマンドを使用して、サンプル プロジェクトをビルドします。
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
次の手順を使用して、サンプルをローカルに準備します。 これらの手順では、AZD を使用して、Azure Developer CLI テンプレートからイベント 駆動型 アプリケーションを初期化します。
ターミナルを開き、空のフォルダーを新規作成し、そのフォルダに移動します。
次のコマンドを実行して、以下のプロジェクトを初期化します:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
次の一覧に、コマンド対話を記載します。
-
[Enter a new environment name]: 環境名を指定します。これは、すべての Azure リソースを保持するために作成されたリソース グループのサフィックスとして使用されます。 この名前は、Azure サブスクリプション内で一意である必要があります。
コンソールから、次の例のようなメッセージが出力されます。
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3. クラウド環境を準備する
このサンプルを実行するために必要な主なリソースは、Azure Spring Apps インスタンス、Azure Key Vault インスタンス、および Azure Service Bus インスタンスです。 次の手順を使用して、これらのリソースを作成します。
このセクションでは、[Azure へのデプロイ] ボタンを使用して、Azure portal でデプロイ エクスペリエンスを起動します。 このエクスペリエンスでは、ARM テンプレートを使用して Azure リソースを作成します。
3.1. Azure portal にサインインする
Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Azure リソースを作成する
次の手順を使用して、アプリが依存するすべての Azure リソースを作成します。
次の [Azure へのデプロイ] ボタンを選択して、Azure portal でデプロイ エクスペリエンスを起動します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
リージョン |
ユーザーに最も近いリージョン。 |
このリージョンは、リソース グループの作成に使用されます。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択してアプリを Azure Spring Apps にデプロイします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
3.1. Azure portal にサインインする
Web ブラウザーを開き、Azure portal に移動します。 資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
Azure portal の隅にある [リソースの作成] を選択します。
サービスとマーケットプレースの検索 検索ボックスで [サービスバス] を検索します。
[Service Bus] セクションで、 [作成] を選択します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前空間名 |
my-srvbus |
Service Bus サービスを識別する一意の名前。 |
場所 |
ユーザーに最も近い場所。 |
ユーザーに最も近い場所。 |
ホスティング オプションとプラン |
Basic |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
[確認と作成] を選択して、作成パラメータを確認します。 次に、[作成] を選択して、Service Bus インスタンスの作成を完了します。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
[リソースに移動] を選択して、[Service Bus 名前空間] ページに移動します。
ナビゲーション メニューで [共有アクセス ポリシー] を選択し、[RootManageSharedAccessKey] を選択します。
[SAS Policy: RootManageSharedAccessKey] ページで、Spring アプリからの接続を設定するために使用される [プライマリ接続文字列] の値をコピーして保存します。
ナビゲーション メニューで [キュー] を選択し、[キュー] を選択します。
[キューの作成] ページで、[名前] に "小文字" を入力し、[作成] を選択します。
[名前] に "大文字" を使用して前の手順を繰り返し、別のキューを作成します。
3.3. Azure Spring Apps インスタンスを作成する
次の手順を使用して、Azure Spring Apps インスタンスを作成します:
Azure portal の隅にある [リソースの作成] を選択します。
[Compute]>[Azure Spring Apps] を選択します。
[基本] フォームに以下の情報を入力します。
次の表を参考にして、フォームに入力します。 推奨のプランは Standard です。
設定 |
提案された値 |
説明 |
サブスクリプション |
お使いのサブスクリプション名 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
プラン |
Standard |
プランによって、お客様のインスタンスに関連付けられるリソースとコストが決まります。 |
リージョン |
ユーザーに最も近いリージョン |
ユーザーに最も近い場所。 |
ゾーン冗長 |
未選択 |
Azure Spring Apps サービスを Azure 可用性ゾーンに作成するかどうかに関係なく、現時点ではいくつかのリージョンでのみサポートされています。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。
[作成] を選択して、Azure Spring Apps インスタンスをプロビジョニングします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[リソースに移動] を選択すると、サーバーの [概要] ページが開きます。
3.4. アプリ インスタンスを Service Bus インスタンスに接続する
Azure portal で Azure Spring Apps インスタンスに移動します。
ナビゲーション メニューで [アプリ] を選択し、[アプリの作成] を選択します。
[アプリの作成] ページで、[アプリ名] に「simple-event-driven-app」 と入力し、Runtime プラットフォーム の [Java 17] を選択します。
アプリの作成後、前の手順で作成したアプリ名を選択します。
[構成] ページで、[環境変数] タブを選択し、[キー] に 「SERVICE_BUS_CONNECTION_STRING」 と入力し、[値] に Service Bus 接続文字列を貼り付けて、[保存] を選択します。
次のコマンドを使用して、OAuth 2 で Azure CLI にサインインします。 既にログインしている場合は、この手順は無視してください。
azd auth login
コンソールから、次の例のようなメッセージが出力されます。
Logged in to Azure.
標準プランを使用してテンプレートを設定するには、次のコマンドを使用します:
azd env set PLAN standard
次のコマンドを使用して、アプリケーションのデプロイ可能なコピーをパッケージ化し、テンプレートのインフラストラクチャを Azure にプロビジョニングし、新しくプロビジョニングされたリソースにアプリケーション コードをデプロイします:
azd provision
次の一覧に、コマンド対話を記載します。
-
[使用する Azure サブスクリプションを選択してください]: 矢印を使用して移動し、入力してフィルター処理し、Enter キーを押します。
-
[使用する Azure の場所を選択してください]: 矢印を使用して移動し、入力してフィルター処理し、Enter キーを押します。
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
このコマンドは、完了するまで時間がかかる場合があります。 Azure リソースがプロビジョニングされると、進行状況インジケーターが表示されます。
4. アプリを Azure Spring Apps にデプロイする
前のセクションの [Azure へのデプロイ] ボタンにより、アプリケーションのデプロイを含む Azure portal エクスペリエンスが起動されるため、他に何も必要ありません。
次の手順に従って、Azure Spring Apps 用の Maven プラグインを使用してデプロイします。
complete ディレクトリに移動し、次のコマンドを使用して Azure Spring Apps のアプリを構成します。
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
次の一覧に、コマンド対話を記載します。
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
Select subscription (サブスクリプションを選択してください): 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure で既存の Azure Spring Apps を使う: 既存の Azure Spring Apps インスタンスを使うには、y キーを押します。
-
Select Azure Spring Apps for deployment (デプロイ用の Azure Spring Apps を選択してください): 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure Spring Apps <your-instance-name> で既存のアプリを使う: 作成したアプリを使うには、y キーを押します。
-
上記のすべての構成の保存を確定する: y キーを押します。
n を押した場合、構成は POM ファイルに保存されません。
次のコマンドを使用して、アプリをデプロイします。
./mvnw azure-spring-apps:deploy
次の一覧に、コマンド対話を記載します:
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
コマンドが実行されると、デプロイが成功したことを示す次のログ メッセージが表示されます。
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
次の手順を使用して、アプリをパッケージ化し、Web アプリケーションに必要な Azure リソースをプロビジョニングしてから、Azure Spring Apps にデプロイします。
次のコマンドを実行して、アプリケーションのデプロイ可能なコピーをパッケージ化します:
azd package
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was packaged for Azure in xx seconds.
次のコマンドを実行して、新しくプロビジョニングされたリソースにアプリケーション コードをデプロイします:
azd deploy
コンソールから、次の例のようなメッセージが出力されます。
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Note
azd up
を使って、前の 3 つのコマンド azd provision
(Azure リソースをプロビジョニングする)、azd package
(アプリケーションのデプロイ可能なコピーをパッケージ化する)、azd deploy
(アプリケーション コードをデプロイする) を組み合わせることもできます。 詳細については、「Azure-Samples/ASA-Samples-Web-Application」 を参照してください。
2. Spring プロジェクトを準備する
次の手順を使用して、サンプルをローカルに準備します。
サンプル プロジェクトは GitHub で準備ができています。 次のコマンドを使用して、サンプル プロジェクトを複製します:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
次のコマンドを使用して、サンプル プロジェクトをビルドします。
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
次の手順を使用して、サンプルをローカルに準備します。
サンプル プロジェクトは GitHub で準備ができています。 次のコマンドを使用して、サンプル プロジェクトを複製します:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
次のコマンドを使用して、サンプル プロジェクトをビルドします。
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
3. クラウド環境を準備する
このサンプルを実行するために必要な主なリソースは、Azure Spring Apps インスタンスと Azure Service Bus インスタンスです。 以下のセクションでは、これらのリソースを作成する方法について説明します。
このセクションでは、[Azure へのデプロイ] ボタンを使用して、Azure portal でデプロイ エクスペリエンスを起動します。 このエクスペリエンスでは、ARM テンプレートを使用して Azure リソースを作成します。
3.1. Azure portal にサインインする
Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Azure リソースを作成する
次の手順を使用して、アプリが依存するすべての Azure リソースを作成します。
次の [Azure へのデプロイ] ボタンを選択して、Azure portal でデプロイ エクスペリエンスを起動します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
リージョン |
ユーザーに最も近いリージョン。 |
このリージョンは、リソース グループの作成に使用されます。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択してアプリを Azure Spring Apps にデプロイします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
3.1. Azure portal にサインインする
Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
Azure portal の隅にある [リソースの作成] を選択します。
サービスとマーケットプレースの検索 検索ボックスで [サービスバス] を検索します。
[Service Bus] セクションで、 [作成] を選択します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームに入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前空間名 |
my-srvbus |
Service Bus サービスを識別する一意の名前。 |
場所 |
ユーザーに最も近い場所。 |
ユーザーに最も近い場所。 |
ホスティング オプションとプラン |
Basic |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
[確認と作成] を選択して、作成パラメータを確認します。 次に、[作成] を選択して、Service Bus インスタンスの作成を完了します。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[Go to resource] (リソースに移動) を選択して、サービスの [概要] ページを開きます。
[リソースに移動] を選択して、[Service Bus 名前空間] ページに移動します。
ナビゲーション メニューで [キュー] を選択し、[キュー] を選択します。
[キューの作成] ページで、[名前] に "小文字" を入力し、[作成] を選択します。
[名前] に "大文字" を使用して前の手順を繰り返し、別のキューを作成します。
3.3. Azure Spring Apps インスタンスを作成する
次の手順を使用して、サービス インスタンスを作成します。
Azure portal の隅にある [リソースの作成] を選択します。
[Compute]>[Azure Spring Apps] を選択します。
[基本] フォームに以下の情報を入力します。
設定 |
提案された値 |
説明 |
[サブスクリプション] |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
リージョン |
ユーザーに最も近いリージョン。 |
ユーザーに最も近い場所。 |
ホスティング オプションとプラン |
Enterprise |
価格プラン。これによって、インスタンスに関連付けられるリソースとコストが決まります。 |
ゾーン冗長 |
未選択 |
Azure 可用性ゾーンに Azure Spring Apps サービスを作成するオプション。 この機能は、現在、すべてのリージョンでサポートされているわけではありません。 |
ソフトウェア IP プラン |
従量課金制 |
Azure Spring Apps の従量課金制の料金プラン。 |
サンプル プロジェクトのデプロイ |
未選択 |
組み込みのサンプル アプリケーションを使うオプション。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。 次に、[作成] を選択して、Azure Spring Apps インスタンスをプロビジョニングします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[リソースに移動] を選択して、[Azure Spring Apps Overview](Azure Spring Apps の概要) ページに移動します。
3.4. アプリ インスタンスを Service Bus インスタンスに接続する
次の手順を使用して、サービス インスタンスを接続します。
Azure portal で Azure Spring Apps インスタンスに移動します。
ナビゲーション ウィンドウから [アプリ] ペインを開き、[アプリの作成] を選びます。
[アプリの作成] ページで、アプリ名に「simple-event-driven-app」を使い、その他のフィールドはすべて既定値のままにします。
[作成] を選択してアプリの作成を完了したら、そのアプリを選択して詳細を表示します。
ナビゲーション ウィンドウで [サービス コネクタ] を選択し、[作成] を選択して、新しいサービス接続を作成します。
[基本] タブに次の情報を入力します。
-
サービスの種類: [Service Bus] を選択します。
-
接続名: 自動的に生成された名前が設定されます。この名前は変更できます。
-
[サブスクリプション]:サブスクリプションを選択します。
-
名前空間: 作成した名前空間を選択します。
-
クライアントの種類: [SpringBoot] を選びます。
次の情報を使って、[次へ: 認証] タブを構成します。
Note
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フロー (データベース、キャッシュ、メッセージング、AI サービスなど) には、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続またはキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレス接続またはキーレス接続にユーザー ID を使用します。
-
[Select the authentication type you'd like to use between your compute service and target service.] (コンピューティング サービスとターゲット サービスの間で使用する認証の種類を選択します。): [接続文字列] を選択します。
[次へ: ネットワーク] を選択します。 既定のオプション [ターゲット サービスへのアクセスを有効にするようにファイアウォール規則を構成する] を使います。
[次へ: 確認と作成] を選択して選択内容を確認し、[作成] を選択して接続を作成します。
3.1. 各リソースの名前を指定する
次のコマンドを使用して、リソースを保持する変数を作成します。 プレースホルダーは必ず、独自の値で置き換えてください。
export RESOURCE_GROUP=<event-driven-app-resource-group-name>
export LOCATION=<desired-region>
export SERVICE_BUS_NAME_SPACE=<event-driven-app-service-bus-namespace>
export AZURE_SPRING_APPS_INSTANCE=<Azure-Spring-Apps-instance-name>
export APP_NAME=<event-driven-app-name>
3.2. 新しいリソース グループを作成する
次の手順を使用して、新しいリソース グループを作成します。
次のコマンドを使用して、Azure CLI にサインインします。
az login
次のコマンドを使用して、既定の場所を設定します。
az configure --defaults location=${LOCATION}
次のコマンドを使用して、使用可能なすべてのサブスクリプションを一覧表示し、使用するサブスクリプション ID を決定します。
az account list --output table
次のコマンドを使用して、既定のサブスクリプションを設定します。
az account set --subscription <subscription-ID>
次のコマンドを使用して、リソース グループを作成します。
az group create --resource-group ${RESOURCE_GROUP}
次のコマンドを使用して、新しく作成したリソース グループを既定のリソース グループとして設定します。
az configure --defaults group=${RESOURCE_GROUP}
3.3. 拡張機能のインストールと名前空間の登録
次のコマンドを使用して、Azure CLI 用の Azure Spring Apps 拡張機能をインストールし、Microsoft.SaaS
次の名前空間を登録します:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
3.4. Azure Spring Apps インスタンスを作成する
次のコマンドを使用して、Azure Spring Apps インスタンスを作成します。
az spring create \
--name ${AZURE_SPRING_APPS_INSTANCE} \
--sku Enterprise
次のコマンドを使用して、Azure Spring Apps インスタンスにアプリを作成します:
az spring app create \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME}
3.5. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
次のコマンドを使用して、Service Bus の名前空間を作成します。
az servicebus namespace create --name ${SERVICE_BUS_NAME_SPACE}
次のコマンドを使用して、lower-case
と upper-case
という名前の 2 つのキューを作成します。
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name lower-case
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name upper-case
3.6. アプリ インスタンスを Service Bus インスタンスに接続する
これで、Service Bus と Azure Spring Apps のアプリの両方が作成されましたが、アプリは Service Bus に接続できません。 次の手順を使用して、アプリが Service Bus に接続できるようにし、アプリをデプロイします:
次のコマンドを使用して、Service Bus の接続文字列を取得します。
Note
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フロー (データベース、キャッシュ、メッセージング、AI サービスなど) には、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続またはキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレスまたはキーレス接続にユーザー ID を使用します。
export SERVICE_BUS_CONNECTION_STRING=$( \
az servicebus namespace authorization-rule keys list \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name RootManageSharedAccessKey \
--query primaryConnectionString \
--output tsv)
次のコマンドを使用して、環境変数を介して接続文字列をアプリに提供します:
az spring app update \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--env SPRING_CLOUD_AZURE_SERVICEBUS_CONNECTIONSTRING=${SERVICE_BUS_CONNECTION_STRING} \
SPRING_CLOUD_AZURE_KEYVAULT_SECRET_PROPERTYSOURCEENABLED=false
4. アプリを Azure Spring Apps にデプロイする
前のセクションの [Azure へのデプロイ] ボタンにより、アプリケーションのデプロイを含む Azure portal エクスペリエンスが起動されるため、他に何も必要ありません。
次の手順に従って、Azure Spring Apps 用の Maven プラグインを使用してデプロイします。
complete ディレクトリに移動し、次のコマンドを使用して Azure Spring Apps のアプリを構成します。
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
次の一覧に、コマンド対話を記載します。
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
Select subscription (サブスクリプションを選択してください): 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure で既存の Azure Spring Apps を使う: 既存の Azure Spring Apps インスタンスを使うには、y キーを押します。
-
Select Azure Spring Apps for deployment (デプロイ用の Azure Spring Apps を選択してください): 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure Spring Apps <your-instance-name> で既存のアプリを使う: 作成したアプリを使うには、y キーを押します。
-
上記のすべての構成の保存を確定する: y キーを押します。
n を押した場合、構成は POM ファイルに保存されません。
次のコマンドを使用して、アプリをデプロイします。
./mvnw azure-spring-apps:deploy
次の一覧に、コマンド対話を記載します:
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
コマンドが実行されると、デプロイが成功したことを示す次のログ メッセージが表示されます。
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
これでクラウド環境が準備できました。 次のコマンドを使用して、アプリをデプロイします:
az spring app deploy \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--artifact-path target/simple-event-driven-app-0.0.2-SNAPSHOT.jar
5. アプリ を検証します
次の手順を使用して、イベント ドリブン アプリが正しく動作することを確認します。 アプリを検証するには、lower-case
キューにメッセージを送信し、upper-case
キューにメッセージがあることを確認します。
6.リソースをクリーンアップする
この記事で作成したリソースは、不要になったら必ず削除してください。 Azure リソース グループを削除した場合、そのリソース グループに含まれたすべてのリソースが対象となります。
次の手順に従って、新しく作成したサーバーを含むリソース グループ全体を削除します。
Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
[リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。
次の手順に従って、新しく作成したサーバーを含むリソース グループ全体を削除します。
Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
[リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。
次のコマンドを使用して、新しく作成したサーバーを含むリソース グループ全体を削除します。
az group delete --name ${RESOURCE_GROUP}
次の手順に従って、新しく作成したサーバーを含むリソース グループ全体を削除します。
Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
[リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。
次の手順に従って、新しく作成したサーバーを含むリソース グループ全体を削除します。
Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
[リソース グループ] ページで [削除] を選択します。 テキスト ボックスに削除を確定するリソース グループの名前を入力し、[削除] を選択します。
このサンプル アプリケーションで使用されているすべての Azure リソースを削除するには、次のコマンドを使用します:
azd down
次の一覧に、コマンド対話を記載します。
-
削除するリソースの合計: <your-resources-total>、 続行してもよろしいですか?: y キーを押します。
-
[Would you like to permanently delete these resources instead, allowing their names to be reused?] (代わりにこれらのリソースを完全に削除して、名前を再利用できるようにしますか?): y キーを押します。 Key Vault を再利用する場合は、n キーを押します。
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
7. 次のステップ
詳細については、次の記事を参照してください。