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