この記事の適用対象:✅ Basic/Standard ✅ Enterprise
この記事では、Spring Boot イベント ドリブン アプリケーションを Azure Spring Apps にデプロイする方法について説明します。
サンプル プロジェクトは、lower-case という名前の Service Bus キューをサブスクライブし、メッセージを処理し、別のメッセージを upper-case という名前の別のキューに送信するイベント ドリブン アプリケーションです。 アプリをシンプルにするために、メッセージ処理はメッセージを大文字に変換するだけです。 次の図はこのプロセスを示しています。
この記事では、Azure Spring Apps にデプロイするための次のオプションについて説明します:
-
[Azure portal] オプションは、1 回のクリックでリソースを作成してアプリケーションをデプロイできる最も簡単で最速の方法です。 このオプションは、Azure クラウド サービスにアプリケーションをすばやくデプロイしたい Spring 開発者に適しています。
-
[Azure portal と Maven プラグイン] のオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
-
Azure Developer CLI オプションは、単純なコマンドを使用して、リソースを自動的に作成し、アプリケーションをデプロイする、より効率的な方法です。 Azure Developer CLI では、テンプレートを使用して、必要な Azure リソースをプロビジョニングし、アプリケーション コードをデプロイします。 このオプションは、Azure クラウド サービスに慣れている Spring 開発者に適しています。
-
[Azure portal] オプションは、1 回のクリックでリソースを作成してアプリケーションをデプロイできる最も簡単で最速の方法です。 このオプションは、Azure クラウド サービスにアプリケーションをすばやくデプロイしたい Spring 開発者に適しています。
-
[Azure portal と Maven プラグイン] のオプションは、リソースを作成し、アプリケーションを段階的にデプロイするためのより従来型の方法です。 このオプションは、Azure クラウド サービスを初めて使用する Spring 開発者に適しています。
-
[Azure CLI] オプションは、強力なコマンド ライン ツールを使用して、Azure リソースを管理します。 このオプションは、Azure クラウド サービスに慣れている Spring 開発者に適しています。
1. 前提条件
- Azure サブスクリプション。 Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure サブスクリプション。 Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
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
次の一覧に、コマンド対話を記載します。
-
新しい環境名を入力します: 環境名を指定します。これは、すべての 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 ダッシュボードに作成されます。
[リソースに移動] を選択して、サービスの [概要] ページを開きます。
3.1. Azure portal にサインインする
Web ブラウザーを開き、Azure portal に移動します。 資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
Azure portal の隅にある [リソースの作成] を選びます。
[サービスとマーケットプレースの検索] 検索ボックスで service bus を検索します。
[Service Bus] セクションで、[作成] を選択します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームを完成させます。
| 設定 |
推奨値 |
説明 |
|
サブスクリプション |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
|
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
|
名前空間名 |
my-srvbus |
Service Bus サービスを識別する一意の名前。 |
|
ロケーション |
ユーザーに最も近い場所。 |
ユーザーに最も近い場所。 |
|
ホスティング オプションとプラン |
基本的な |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
[確認と作成] を選択して、作成パラメータを確認します。 次に、[作成] を選択して、Service Bus インスタンスの作成を完了します。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが終了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure Portal ダッシュボードに作成されます。
[リソースに移動] を選択して、サービスの [概要] ページを開きます。
[リソースに移動] を選択して、[Service Bus 名前空間] ページに移動します。
ナビゲーション メニューで [共有アクセス ポリシー] を選択し、[RootManageSharedAccessKey] を選択します。
[SAS Policy: RootManageSharedAccessKey] ページで、Spring アプリからの接続を設定するために使用される [プライマリ接続文字列] の値をコピーして保存します。
ナビゲーション メニューで [キュー] を選択してから、[キュー] を選択します。
[キューの作成] ページで、[名前] に lower-case を入力し、[作成] を選択します。
[名前] に upper-case を使用して前の手順を繰り返し、別のキューを作成します。
3.3 Azure Spring Apps インスタンスを作成する
次の手順を使用して、Azure Spring Apps インスタンスを作成します:
Azure portal の隅にある [リソースの作成] を選びます。
[コンピューティング]>[Azure Spring Apps] を選択します。
[基本] フォームに以下の情報を入力します。
次の表を参考にして、フォームに入力します。 推奨のプランは Standard です。
| 設定 |
推奨値 |
説明 |
|
サブスクリプション |
お使いのサブスクリプション名 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
|
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
|
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
|
プラン |
標準 |
プランによって、お客様のインスタンスに関連付けられるリソースとコストが決まります。 |
|
リージョン |
ユーザーに最も近いリージョン |
ユーザーに最も近い場所。 |
|
ゾーン冗長 |
未選択 |
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.
Standard プランを使用してテンプレートを設定するには、次のコマンドを使用します:
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 ログイン: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
サブスクリプションを選択してください: 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure で既存の Azure Spring Apps を使う: 既存の Azure Spring Apps インスタンスを使うには、y キーを押します。
-
デプロイ用の Azure Spring Apps を選択します: 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure Spring Apps <your-instance-name> で既存のアプリを使う: 作成したアプリを使うには、y キーを押します。
-
上記のすべての構成の保存を確定する: y キーを押します。
n を押した場合、構成は POM ファイルに保存されません。
次のコマンドを使用して、アプリをデプロイします。
./mvnw azure-spring-apps:deploy
次の一覧に、コマンド対話を記載します:
-
OAuth2 ログイン: 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
注
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 ダッシュボードに作成されます。
[リソースに移動] を選択して、サービスの [概要] ページを開きます。
3.1. Azure portal にサインインする
Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. Service Bus インスタンスを作成する
Service Bus インスタンスを作成するには、次の手順に従います:
Azure portal の隅にある [リソースの作成] を選びます。
[サービスとマーケットプレースの検索] 検索ボックスで service bus を検索します。
[Service Bus] セクションで、[作成] を選択します。
[基本] タブでフォームに入力します。次の表を参考にして、フォームを完成させます。
| 設定 |
推奨値 |
説明 |
|
サブスクリプション |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
|
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
|
名前空間名 |
my-srvbus |
Service Bus サービスを識別する一意の名前。 |
|
ロケーション |
ユーザーに最も近い場所。 |
ユーザーに最も近い場所。 |
|
ホスティング オプションとプラン |
基本的な |
価格プランによって、インスタンスに関連付けられるリソースとコストが決まります。 |
[確認と作成] を選択して、作成パラメータを確認します。 次に、[作成] を選択して、Service Bus インスタンスの作成を完了します。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが終了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure Portal ダッシュボードに作成されます。
[リソースに移動] を選択して、サービスの [概要] ページを開きます。
[リソースに移動] を選択して、[Service Bus 名前空間] ページに移動します。
ナビゲーション メニューで [キュー] を選択してから、[キュー] を選択します。
[キューの作成] ページで、[名前] に lower-case を入力し、[作成] を選択します。
[名前] に upper-case を使用して前の手順を繰り返し、別のキューを作成します。
3.3 Azure Spring Apps インスタンスを作成する
以下の手順を使って、サービス インスタンスを作成します:
Azure portal の隅にある [リソースの作成] を選びます。
[コンピューティング]>[Azure Spring Apps] を選択します。
[基本] フォームに以下の情報を入力します。
| 設定 |
推奨値 |
説明 |
|
サブスクリプション |
自分のサブスクリプション名。 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
|
リソース グループ |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
|
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
|
リージョン |
ユーザーに最も近いリージョン。 |
ユーザーに最も近い場所。 |
|
ホスティング オプションとプラン |
エンタープライズ |
価格プラン。これによって、インスタンスに関連付けられるリソースとコストが決まります。 |
|
ゾーン冗長 |
未選択 |
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] を選びます。
次の情報を使って、[次へ: 認証] タブを構成します。
注
Microsoft では、利用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明する認証フロー (データベース、キャッシュ、メッセージング、Foundry Tools など) には、アプリケーションに対する非常に高い信頼が必要であり、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続またはキーレス接続のマネージド ID など、より安全なオプションが有効でない場合にのみ使用します。 ローカル コンピューターの操作では、パスワードレス接続またはキーレス接続にユーザー ID を使用します。
-
コンピューティング サービスとターゲット サービスの間で使用する認証の種類を選択します。: [接続文字列] を選択します。
[Next: Networking]\(次へ: ネットワーク\) を選択します。 既定のオプション [ターゲット サービスへのアクセスを有効にするようにファイアウォール規則を構成する] を使います。
次へ: 確認と作成 を選択して選択内容を確認し、[作成] を選択して接続を作成します。
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 の接続文字列を取得します。
注
Microsoft では、利用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明する認証フロー (データベース、キャッシュ、メッセージング、Foundry Tools など) には、アプリケーションに対する非常に高い信頼が必要であり、他のフローには存在しないリスクが伴います。 このフローは、パスワードレス接続またはキーレス接続のマネージド 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 ログイン: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
サブスクリプションを選択してください: 作成した Azure Spring Apps インスタンスのサブスクリプション リスト番号を選択します。既定では、リストの最初のサブスクリプションに設定されます。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure で既存の Azure Spring Apps を使う: 既存の Azure Spring Apps インスタンスを使うには、y キーを押します。
-
デプロイ用の Azure Spring Apps を選択します: 作成した Azure Spring Apps インスタンスのリスト番号を選択します。 既定の番号を使用する場合は、Enter キーを直接押します。
-
Azure Spring Apps <your-instance-name> で既存のアプリを使う: 作成したアプリを使うには、y キーを押します。
-
上記のすべての構成の保存を確定する: y キーを押します。
n を押した場合、構成は POM ファイルに保存されません。
次のコマンドを使用して、アプリをデプロイします。
./mvnw azure-spring-apps:deploy
次の一覧に、コマンド対話を記載します:
-
OAuth2 ログイン: 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 キーを押します。
-
[代わりにこれらのリソースを完全に削除して、名前を再利用できるようにしますか?]: y キーを押します。 Key Vault を再利用する場合は、n キーを押します。
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
7. 次の手順
詳細については、次の記事を参照してください。