クイックスタート: イベントドリブン アプリケーションを Azure Spring Apps にデプロイする
[アーティクル] 11/20/2024
2 人の共同作成者
フィードバック
この記事の内容
この記事の適用対象: ✅ 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. 次のステップ
詳細については、次の記事を参照してください。