この記事では、Azure Spring Apps で実行する小規模なアプリケーションをデプロイする方法について説明します。
このチュートリアルで使用されるアプリケーション コードは簡単なアプリです。 この例を完了すると、アプリケーションはオンラインでアクセス可能になり、Azure portal で管理できるようになります。
この記事では、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 開発者に適しています。
-
IntelliJ のオプションは、強力な Java IDE を使用して、Azure リソースを簡単に管理します。 このオプションは、Azure クラウド サービスおよび IntelliJ IDEA に精通している Spring 開発者に適しています。
-
Visual Studio Code のオプションは、Azure リソースを簡単に管理できる、軽量でありながら強力なソース コード エディターを使用します。 このオプションは、Azure クラウド サービスおよび Visual Studio Code に精通している Spring 開発者に適しています。
1.前提条件
2. Spring プロジェクトを準備する
次のセクションの [Azure へのデプロイ] ボタンにより、GitHub の spring-cloud-azure-tools リリース ページから JAR パッケージをダウンロードする Azure portal のエクスペリエンスが起動されます。 ローカル側で必要な準備手順はありません。
次の手順を実行して、プロジェクトを準備します。
次のコマンドを使用して、GitHub から Azure 用の Spring Boot サンプル プロジェクトをクローンします。
git clone https://github.com/spring-guides/gs-spring-boot-for-azure.git
次のコマンドを使用して、プロジェクト フォルダーに移動します。
cd gs-spring-boot-for-azure/complete
次の Maven コマンドを使用して、プロジェクトをビルドします。
./mvnw clean package
次のコマンドを使用して、サンプル プロジェクトをローカルで実行します。
./mvnw spring-boot:run
次の手順を使用して Azure Developer CLI テンプレートからアプリケーションを初期化します。
ターミナルを開き、空のフォルダーを作成して、ディレクトリをそこに変更します。
次のコマンドを実行して、以下のプロジェクトを初期化します:
azd init --template spring-guides/gs-spring-boot-for-azure
次の一覧に、コマンド対話を記載します。
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
[Please 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 クラウド環境を準備する方法について説明します。
このセクションでは、[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. Azure Spring Apps インスタンスを作成する
次の手順を使用して、Azure Spring Apps サービス インスタンスを作成します。
Azure portal の隅にある [リソースの作成] を選択します。
[Compute]>[Azure Spring Apps] を選択します。
[基本情報] フォームに次の情報を入力します。
次の表を参考にして、フォームに入力します。 推奨プランは Standard consumption & dedicated (preview)
です。
設定 |
提案された値 |
説明 |
サブスクリプション |
お使いのサブスクリプション名 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
Resource group |
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 の概要) ページに移動します。
次の手順を使用して、必要なリソースを作成します。
次のコマンドを使用して、OAuth 2 で Azure CLI にサインインします。 既にサインインしている場合は、この手順を無視してください。
azd auth login
コンソールから、次の例のようなメッセージが出力されます。
Logged in to Azure.
次のコマンドを使って、テンプレートのインフラストラクチャを 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>-<random-string>> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Note
これは、完了するまでに時間がかかる場合があります。 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 キーを直接押します。
-
[Use existing app in Azure Spring Apps <your-instance-name>] (Azure Spring Apps で既存のアプリを使用する): n キーを押して、新しいアプリを作成します。
-
[Input the app name (demo)] (アプリ名 (デモ) を入力する): アプリ名を指定します。 既定のプロジェクト成果物 ID を使用する場合は、直接 Enter キーを押します。
-
[Expose public access for this app (boot-for-azure)] (このアプリ (boot-for-azure) のパブリック アクセスを公開する): 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
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
次の手順を使用して、アプリをパッケージ化し、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 demo
- Endpoint: https://demo.xxx.<your-azure-location>.azurecontainerapps.io
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
(アプリケーション コードをデプロイする) を組み合わせることもできます。 詳細については、「spring-guides/gs-spring-boot-for-azure」を参照してください。
2. Spring プロジェクトを準備する
次のセクションの [Azure へのデプロイ] ボタンにより、GitHub の spring-cloud-azure-tools リリース ページから JAR パッケージをダウンロードする Azure portal のエクスペリエンスが起動されます。 ローカル側で必要な準備手順はありません。
次の手順を実行して、プロジェクトを準備します。
次のコマンドを使用して、GitHub から Azure 用の Spring Boot サンプル プロジェクトをクローンします。
git clone https://github.com/spring-guides/gs-spring-boot-for-azure.git
次のコマンドを使用して、プロジェクト フォルダーに移動します。
cd gs-spring-boot-for-azure/complete
次の Maven コマンドを使用して、プロジェクトをビルドします。
./mvnw clean package
次のコマンドを使用して、サンプル プロジェクトをローカルで実行します。
./mvnw spring-boot:run
次の手順を使用して Azure Developer CLI テンプレートからアプリケーションを初期化します。
ターミナルを開き、空のフォルダーを作成して、ディレクトリをそこに変更します。
次のコマンドを実行して、以下のプロジェクトを初期化します:
azd init --template spring-guides/gs-spring-boot-for-azure
次の一覧に、コマンド対話を記載します。
-
OAuth2 login: OAuth2 プロトコルに基づいて Azure へのサインインを承認する必要があります。
-
[Please 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 クラウド環境を準備する方法について説明します。
このセクションでは、[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. Azure Spring Apps インスタンスを作成する
次の手順を使用して、サービス インスタンスを作成します。
Azure portal の隅にある [リソースの作成] を選択します。
[Compute]>[Azure Spring Apps] を選択します。
[基本] フォームに以下の情報を入力します。
設定 |
推奨値 |
説明 |
サブスクリプション |
お使いのサブスクリプション名 |
サーバーに使用する Azure サブスクリプション。 複数のサブスクリプションをお持ちの場合は、リソースの課金対象となるサブスクリプションを選択します。 |
Resource group |
myresourcegroup |
新しいリソース グループ名、またはサブスクリプションの既存のリソース グループ名。 |
名前 |
myasa |
Azure Spring Apps サービスを識別する一意の名前。 名前の長さは 4 文字から 32 文字で、小文字、数字、およびハイフンのみを使用できます。 サービス名の最初の文字は英字でなければならず、最後の文字は英字または数字でなければなりません。 |
プラン |
Standard |
価格プラン。これによって、インスタンスに関連付けられるリソースとコストが決まります。 |
リージョン |
ユーザーに最も近いリージョン |
ユーザーに最も近い場所。 |
ゾーン冗長 |
未選択 |
Azure 可用性ゾーンに Azure Spring Apps サービスを作成するかどうかを示します。 この機能は、現在、すべてのリージョンでサポートされているわけではありません。 |
Review and Create(確認と作成) を選択して、選択内容を確認します。
[作成] を選択して、Azure Spring Apps インスタンスをプロビジョニングします。
ツール バーの [通知] アイコン (ベル) を選択して、デプロイ プロセスを監視します。 デプロイが完了したら、[ダッシュボードにピン留めする] を選択できます。これにより、このサービスのタイルが、サービスの [概要] ページへのショートカットとして、Azure portal ダッシュボードに作成されます。
[リソースに移動] を選択して、[Azure Spring Apps Overview](Azure Spring Apps の概要) ページに移動します。
次の手順を使用して、必要なリソースを作成します。
次のコマンドを使用して、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>-<random-string>> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Note
これは、完了するまでに時間がかかる場合があります。 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 キーを直接押します。
-
[Use existing app in Azure Spring Apps <your-instance-name>] (Azure Spring Apps で既存のアプリを使用する): n キーを押して、新しいアプリを作成します。
-
[Input the app name (demo)] (アプリ名 (デモ) を入力する): アプリ名を指定します。 既定のプロジェクト成果物 ID を使用する場合は、直接 Enter キーを押します。
-
[Expose public access for this app (boot-for-azure)] (このアプリ (boot-for-azure) のパブリック アクセスを公開する): 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
[INFO] InstanceName:demo-default-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:UNREGISTERED
[INFO] InstanceName:demo-default-x-xxxxxxxxx-xxxxx Status:Terminating Reason:null DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io
次の手順を使用して、アプリをパッケージ化し、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 demo
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io/
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 package
(アプリケーションのデプロイ可能なコピーをパッケージ化する)、azd provision
(Azure リソースをプロビジョニングする)、および azd deploy
(アプリケーション コードをデプロイする) を組み合わせることもできます。 詳細については、「spring-guides/gs-spring-boot-for-azure」を参照してください。
2. Spring プロジェクトを準備する
次のセクションの [Azure へのデプロイ] ボタンにより、GitHub の spring-cloud-azure-tools リリース ページから JAR パッケージをダウンロードする Azure portal のエクスペリエンスが起動されます。 ローカル側で必要な準備手順はありません。
次の手順を実行して、プロジェクトを準備します。
次のコマンドを使用して、GitHub から Azure 用の Spring Boot サンプル プロジェクトをクローンします。
git clone https://github.com/spring-guides/gs-spring-boot-for-azure.git
次のコマンドを使用して、プロジェクト フォルダーに移動します。
cd gs-spring-boot-for-azure/complete
次の Maven コマンドを使用して、プロジェクトをビルドします。
./mvnw clean package
次のコマンドを使用して、サンプル プロジェクトをローカルで実行します。
./mvnw spring-boot:run
次の手順を実行して、プロジェクトを準備します。
次のコマンドを使用して、GitHub から Azure 用の Spring Boot サンプル プロジェクトをクローンします。
git clone https://github.com/spring-guides/gs-spring-boot-for-azure.git
次のコマンドを使用して、プロジェクト フォルダーに移動します。
cd gs-spring-boot-for-azure/complete
次の Maven コマンドを使用して、プロジェクトをビルドします。
./mvnw clean package
次のコマンドを使用して、サンプル プロジェクトをローカルで実行します。
./mvnw spring-boot:run
プロジェクトを作成するには、次の手順に従います。
次のコマンドを使用して、Azure Spring Apps に対して推奨される依存関係があるサンプル プロジェクトを start.spring.io
から生成します。
curl https://start.spring.io/starter.tgz -d dependencies=web -d baseDir=demo -d bootVersion=3.0.0 -d javaVersion=17 -d type=maven-project -d groupId=com.example -d artifactId=demo -d name=demo -d packageName=com.example.demo -d packaging=jar | tar -xzvf -
次の内容を含むファイル src/main/java/com/example/demo/HelloController.java を追加して、Web アプリケーション用の Web コントローラーを作成します。
package com.example.demo;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Hello World";
}
}
次の Maven コマンドを使用して、プロジェクトをビルドします。
./mvnw clean package
次のコマンドを使用して、サンプル プロジェクトをローカルで実行します。
./mvnw spring-boot:run
3. クラウド環境を準備する
このセクションでは、Azure Spring Apps サービス インスタンスを作成し、Azure クラウド環境を準備する方法について説明します。
このセクションでは、[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. 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.1. 各リソースの名前を指定する
次のコマンドを使用して、リソースを保持する変数を作成します。 プレースホルダーは必ず、独自の値で置き換えてください。
export LOCATION="<region>"
export RESOURCE_GROUP="<resource-group-name>"
export SERVICE_NAME="<Azure-Spring-Apps-instance-name>"
export APP_NAME="demo"
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 インスタンスを作成する
次の手順を使用して、サービス インスタンスを作成します。
次のコマンドを使用して、Enterprise プランの法律条項とプライバシー ステートメントに同意します。
Note
この手順は、サブスクリプションが Azure Spring Apps の Enterprise プラン インスタンスの作成に使用されたことがない場合にのみ必要です。
az term accept \
--publisher vmware-inc \
--product azure-spring-cloud-vmware-tanzu-2 \
--plan asa-ent-hr-mtr
次のコマンドを使用して、Azure Spring Apps サービス インスタンスを作成します。
az spring create \
--name ${SERVICE_NAME} \
--sku Enterprise
3.5. Azure Spring Apps インスタンスでアプリを作成します。
"アプリ" は、1 つのビジネス アプリを抽象化したものです。 詳しくは、「Azure Spring Apps のアプリとデプロイ」を参照してください。 次の図に示すように、アプリは Azure Spring Apps サービス インスタンスで実行されます。
次のコマンドを使用して、Azure Spring Apps にアプリを作成します。
az spring app create \
--service ${SERVICE_NAME} \
--name ${APP_NAME} \
--assign-endpoint true
3.1. Azure portal にサインインする
Web ブラウザーを開き、Azure portal に移動し、資格情報を入力してポータルにサインインします。 既定のビューはサービス ダッシュボードです。
3.2. 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 の概要) ページに移動します。
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 キーを直接押します。
-
[Use existing app in Azure Spring Apps <your-instance-name>] (Azure Spring Apps で既存のアプリを使用する): n キーを押して、新しいアプリを作成します。
-
[Input the app name (demo)] (アプリ名 (デモ) を入力する): アプリ名を指定します。 既定のプロジェクト成果物 ID を使用する場合は、直接 Enter キーを押します。
-
[Expose public access for this app (boot-for-azure)] (このアプリ (boot-for-azure) のパブリック アクセスを公開する): 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
[INFO] InstanceName:demo-default-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io
次のコマンドを使用して、アプリの .jar ファイルをデプロイします。
az spring app deploy \
--service ${SERVICE_NAME} \
--name ${APP_NAME} \
--artifact-path target/demo-0.0.1-SNAPSHOT.jar
アプリケーションのデプロイには数分かかることがあります。
このセクションでは、Azure Spring Apps にアプリケーションをデプロイする手順について説明します。
4.1. プロジェクトをインポートする
次の手順に従って、プロジェクトをインポートします。
IntelliJ IDEA を開き、[開く] を選択します。
[Open File or Project](ファイルまたはプロジェクトを開く) ダイアログ ボックスで、demo フォルダーを選択します。
4.2. アプリをビルドし、デプロイする
次の手順に従って、アプリをビルドしてデプロイします。
Azure Toolkit for IntelliJ をまだインストールしていない場合は、「Azure Toolkit for IntelliJ をインストールする」の手順に従います。
Note
Azure Toolkit for IntelliJ には、Azure にログインするための 4 つの方法が用意されており、デプロイはログイン後にのみ開始できます。
IntelliJ の [Project](プロジェクト) ウィンドウで対象のプロジェクトを右クリックし、[Azure] ->[Deploy to Azure Spring Apps](Azure Spring Apps にデプロイ) を選択します。
[Name](名前) フィールドのアプリの名前はそのまま使用します。
[Name](名前) は、アプリ名ではなく構成を参照します。 通常、これを変更する必要はありません。
[成果物] テキストボックスで、Maven:demo(Java 17) を選択します。
[Subscription](サブスクリプション) テキスト ボックスで、自分のサブスクリプションが正しいことを確認します。
[Spring Apps] テキスト ボックスで、作成した Azure Spring Apps インスタンスを選択します。
[App](アプリ) テキスト ボックスで、プラス記号 (+) を選択して、新しいアプリを作成します。
[App Basics](アプリの基本情報) にある [アプリ名:] テキストボックスに「demo」と入力して、[その他の設定] を選択します。
[Public endpoint](パブリック エンドポイント) の横にある [Enable](有効) ボタンを選択します。 ボタンが [Disable](無効) <有効にする> に変わります。
[OK] をクリックします。
[Before launch](起動前) で、[Run Maven Goal 'hellospring:package'](Maven の目標 'demo:package' を実行) を選択し、鉛筆アイコンを選択してコマンド ラインを編集します。
[Command line](コマンド ライン) テキスト ボックスの「package」の後に「-DskipTests」と入力し、[OK] を選択します。
デプロイを開始するには、[Azure へのデプロイ] ダイアログ ボックスの下部にある [実行] ボタンを選択します。 このプラグインは、demo
アプリに対して Maven コマンド package -DskipTests
を実行し、package
コマンドによって生成された .jar ファイルをデプロイします。
アプリケーションのデプロイには数分かかることがあります。 出力コンソール ログにアプリケーションのパブリック URL が表示されます。
5. アプリ を検証します
このセクションでは、アプリケーションを検証する方法について説明します。
デプロイが完了したら、デプロイの出力からアプリケーション URL を確認します。 次の手順に従って、検証します。
[デプロイメント] の [出力]ページからアプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
各リソース デプロイの詳細を確認します。これは、デプロイの問題があった場合の調査に役立ちます。
デプロイが完了したら、出力のアプリケーション URL を使用してアプリケーションにアクセスします。 次の手順を使用して、アプリのログをチェックし、デプロイの問題があれば調査します。
[デプロイメント] の [出力]ページから出力アプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
Azure Spring Apps インスタンスの[概要] ページのナビゲーション ウィンドウで、[ログ] を選択してアプリのログを確認します。
デプロイが完了したら、出力のエンドポイントを使用してアプリケーションにアクセスします。 アプリを開くと、応答 Hello World
が返されます。
デプロイが完了したら、次の手順を使用して、デプロイの出力からアプリケーション URL を確認できます。
[デプロイメント] の [出力]ページからアプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
各リソース デプロイの詳細を確認します。これは、デプロイの問題があった場合の調査に役立ちます。
デプロイが完了したら、次の手順を使用して、アプリのログをチェックし、デプロイの問題があれば調査します。
[デプロイメント] の [出力]ページからアプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
Azure Spring Apps インスタンスの概要ページのナビゲーション ウィンドウで、[ログ] を選択してアプリのログを確認します。
デプロイが完了したら、出力のエンドポイントを使用してアプリケーションにアクセスします。 アプリを開くと、応答 Hello World
が返されます。
デプロイが完了したら、次の手順を使用して、デプロイの出力からアプリケーション URL を確認できます。
[デプロイメント] の [出力]ページからアプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
各リソース デプロイの詳細を確認します。これは、デプロイの問題があった場合の調査に役立ちます。
デプロイが完了したら、次の手順に従ってアプリを検証します。
アプリケーション URL にアクセスします。 アプリを開くと、応答 Hello World
が返されます。
コンソール ログを確認します。これは、デプロイの問題があった場合の調査に役立ちます。
デプロイが完了したら、次の手順を使用して、アプリのログをチェックし、デプロイの問題があれば調査します。
出力のアプリケーション URL を使用してアプリケーションにアクセスします。 アプリを開くと、応答 Hello World
が返されます。
次のコマンドを使用して、アプリのログをチェックし、デプロイの問題を調査します。
az spring app logs \
--service ${SERVICE_NAME} \
--name ${APP_NAME}
次の手順を使用して、アプリケーション ログをストリームします。
出力のアプリケーション URL を使用してアプリケーションにアクセスします。 アプリを開くと、応答 Hello World
が返されます。
[Azure Explorer] ウィンドウを開き、ノード Azure を展開し、サービス ノード Azure Spring Apps を展開し、作成した Azure Spring Apps インスタンスを展開して、作成したアプリの demo インスタンスを選択します。
右クリックして [Start Streaming Logs](ストリーミング ログの開始) を選択し、[OK] を選択してリアルタイムのアプリケーション ログを表示します。
6.リソースをクリーンアップする
後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことができます。 リソースが不要になったら、不要なリソースをクリーンアップすると、Azure の料金を抑えることができます。
次の手順に従って、新しく作成したサービス インスタンスを含むリソース グループ全体を削除します。
- Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
次の手順に従って、新しく作成したサービス インスタンスを含むリソース グループ全体を削除します。
- Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
Azure CLI を使用してリソース グループを削除するには、次のコマンドを使用します。
az group delete --name ${RESOURCE_GROUP}
IntelliJ を使用してリソース グループを削除するには、次の手順を使用します。
IntelliJ IDEA に移動し、リソース グループの名前を見つけます。
リソース グループを右クリックし、[削除] を選択して、関連するすべての Azure リソースを削除します。
Visual Studio Code を使用してリソース グループを削除するには、次の手順を使用します。
Visual Studio Code に移動し、[グループ化] 選択して [リソース グループでグループ化] を有効にし、リソース グループの名前を見つけます。
リソース グループを右クリックし、[Delete Resource Group...](リソース グループの削除...) を選択して、関連するすべての Azure リソースを削除します。
次の手順に従って、新しく作成したサービス インスタンスを含むリソース グループ全体を削除します。
- Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
次の手順に従って、新しく作成したサービス インスタンスを含むリソース グループ全体を削除します。
- Azure Portal で目的のリソース グループを探します。 ナビゲーション メニューで [リソース グループ] を選択し、該当するリソース グループの名前を選択します。
このサンプル アプリケーションで使用されているすべての Azure リソースを削除するには、次のコマンドを使用します:
azd down
次の一覧に、コマンド対話を記載します:
-
削除するリソースの合計: <your-resources-total>、 続行してもよろしいですか?: y キーを押します。
コンソールから、次の例のようなメッセージが出力されます。
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
7. 次のステップ
詳細については、次の記事を参照してください。