Azure Spring Apps Enterprise プランで多言語アプリをデプロイする方法
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象: ❎ Basic/Standard ✅ Enterprise
この記事では、Azure Spring Apps Enterprise プランでポリグロット アプリをデプロイする方法と、これらのポリグロット アプリで Buildpacks によって提供されるビルド サービス機能を使用する方法について説明します。
前提条件
- Azure Spring Apps Enterprise プランのインスタンスが既にプロビジョニングされている。 詳細については、「クイック スタート: Enterprise プランを使用してアプリをビルドし Azure Spring Apps にデプロイする」をご覧ください。
- Azure CLI バージョン 2.45.0 以上。 次のコマンドを使用して、Azure Spring Apps 拡張機能をインストールします。
az extension add --name spring
サービス インスタンスにポリグロット アプリケーションをデプロイする
このセクションは、ビルド サービスが有効になっている場合の Polyglot アプリケーションのビルドとデプロイに適用されます。 ビルド サービスを無効にすると、カスタム コンテナー イメージのみを使用してアプリケーションをデプロイできます。 独自のイメージを作成することも、Azure Spring Apps Enterprise インスタンスによってビルドされたものを使用することもできます。 詳細については、「カスタム コンテナー イメージを使用してアプリケーションをデプロイする」を参照してください。
ビルダーを管理する
Azure Spring Apps Enterprise のインスタンスを作成するときは、次のサポートされている言語ファミリ ビルドパックのいずれかから既定のビルダーを選択する必要があります。
- VMware Tanzu 用 Java Azure ビルドパック
- VMware Tanzu 用 .NET Core ビルドパック
- VMware Tanzu 用 Go ビルドパック
- VMware Tanzu 用 Web Servers ビルドパック
- VMware Tanzu 用 Node.js ビルドパック
- VMware Tanzu 用 Python ビルドパック
- VMware Tanzu 用 Java ネイティブ イメージ ビルドパック
- VMware Tanzu 用 PHP ビルドパック
詳細については、「VMware Tanzu の言語ファミリ ビルドパック」を参照してください。
これらのビルドパックでは、Java、.NET Core、Go、Web 静的ファイル、Node.js、Python アプリのソース コードまたは成果物を使用したビルドがサポートされています。 ビルダーの作成または表示中に、ビルドパックのバージョンを表示することもできます。 また、ビルドパックとスタックを指定してカスタム ビルダーを作成できます。
Azure Spring Apps サービス インスタンスで構成されているすべてのビルダーは、次のスクリーンショットに示すように [サービスのビルド] ページに一覧表示されます。
[追加] を選択して、新しいビルダーを作成します。 次のスクリーンショットは、カスタム ビルダーの作成時に使用すべきリソースを示しています。 OS スタックには、Bionic Base
、Bionic Full
、Jammy Tiny
、Jammy Base
および Jammy Full
が含まれます。 Bionic は Ubuntu 18.04 (Bionic Beaver)
に基づいており、Jammy は Ubuntu 22.04 (Jammy Jellyfish)
に基づいています。 詳細については、「OS スタックの推奨事項」セクションを参照してください。
VMware では Bionic OS Stack
を非推奨としているため、Jammy OS Stack
を使用してビルダーを作成することをお勧めします。
デプロイでビルダーが使用されていない場合は、カスタム ビルダーを編集することもできます。 ビルドパックや OS スタックは更新できますが、ビルダーの名前は読み取り専用です。
このビルダーは、デプロイに継続的に提供されるリソースです。 このビルダーでは、最新のランタイム イメージと最新のビルドパックを利用できます。
既存のアクティブなデプロイがビルダーによってビルドされている場合、そのビルダーを削除することはできません。 この状態のビルダーを削除するには、次の手順に従います。
- 構成を新しいビルダーとして保存します。
- 新しいビルダーを使用してアプリをデプロイします。 デプロイは新しいビルダーにリンクされます。
- 以前のビルダーの下にあるデプロイを新しいビルダーに移行します。
- 元のビルダーを削除します。
OS スタックの推奨事項
Azure Spring Apps では、Jammy OS Stack
を使用してビルダーを作成することをお勧めします。これは、Bioinic OS Stack
が VMware によって廃止される予定であるためです。 次の一覧では、使用可能なオプションについて説明します。
Jammy Tiny: 可能な限り小さいサイズとセキュリティ フットプリントのために、最小限の画像をビルドするのに適しています。 Java ネイティブ イメージのビルドと同様に、最終的なコンテナー イメージを小さくできます。 統合ライブラリは制限されています。 たとえば、
shell
ライブラリがないため、トラブルシューティングのためにアプリ インスタンスに接続できません。- ほとんどの Go アプリ。
- Java アプリ。 Tiny にはシェルがないため、bin/setenv.sh の設定などの一部の Apache Tomcat 構成オプションは使用できません。
Jammy Base: ネイティブ拡張機能のないほとんどのアプリに適しています。
- Java アプリと .NET Core アプリ。
- 一部の C ライブラリを必要とする Go アプリ。
- ネイティブ拡張機能のない Node.js、Python、または Web サーバー アプリ。
Jammy Full: ほとんどのライブラリが含まれており、ネイティブ拡張機能を持つアプリに適しています。 たとえば、フォントのより完全なライブラリが含まれています。 アプリがネイティブ拡張機能に依存している場合は、
Full
スタックを使用します。- ネイティブ拡張機能を使った Node.js または Python アプリ。
詳細については、VMware のドキュメントに記載の Ubuntu スタックを参照してください。
コンテナー レジストリを管理する
このセクションでは、独自のコンテナー レジストリでビルド サービスを有効にした場合に、ビルド サービスで使用されるコンテナー レジストリを管理する方法について説明します。 Azure Spring Apps マネージド コンテナー レジストリを使用してビルド サービスを有効にする場合は、このセクションをスキップできます。
ビルド サービスでユーザー コンテナー レジストリを有効にした後は、Azure portal または Azure CLI を使用してレジストリを表示および構成できます。
コンテナー レジストリを表示、追加、編集、削除するには、次の手順に従います。
Azure portal を開きます。
ナビゲーション ウィンドウで [コンテナー レジストリ] を選択します。
[追加] を選択して、コンテナー レジストリを作成します。
コンテナー レジストリの場合は、省略記号 ([...]) ボタンを選択し、[編集] を選択してレジストリ構成を表示します。
[Edit container registry] (コンテナー レジストリの編集) ページの値を確認します。
コンテナー レジストリを削除するには、省略記号 ([...]) ボタンを選択し、[削除] を選択してレジストリを削除します。 コンテナー レジストリがビルド サービスによって使用されている場合は、削除できません。
ビルド サービスでは、コンテナー レジストリを使用できます。また、関連するコンテナー レジストリを変更することもできます。 このプロセスには時間がかかります。 変更が行われると、ビルド サービスのすべてのビルダーとビルド リソースがリビルドされ、最終的なコンテナー イメージが新しいコンテナー レジストリにプッシュされます。
ビルド サービスに関連付けられているコンテナー レジストリを切り替えるには、次の手順に従います。
Azure portal を開きます。
ナビゲーション ウィンドウで、[ビルド サービス] を選択します。
[Referenced container registry] (参照コンテナー レジストリ) を選択して、ビルド サービスのコンテナー レジストリを更新します。
Polyglot アプリケーションをビルドしてデプロイする
コンテナー レジストリを使用して、次の方法で Polyglot アプリケーションをビルドしてデプロイできます。
Azure Spring Apps マネージド コンテナー レジストリを使用するビルド サービスの場合は、イメージにアプリケーションをビルドし、それを現在の Azure Spring Apps サービス インスタンスにデプロイできます。 ビルドとデプロイは、
az spring app deploy
コマンドを使用して一緒に実行されます。ユーザーが管理するコンテナー レジストリを使用するビルド サービスの場合は、アプリケーションをコンテナー イメージにビルドし、現在の Azure Spring Apps Enterprise インスタンスやその他のインスタンスにイメージをデプロイできます。 ビルド コマンドと配置コマンドは別々です。 build コマンドは、ビルドを作成または更新する場合に使用できます。その後で、deploy コマンドを使用すると、コンテナー イメージをサービス インスタンスにデプロイできます。
詳細については、「Tanzu Build Service を使用する」のセクション「オンデマンドでサービスを構築する」を参照してください。
次の例は、便利なビルド コマンドを示しています。
az configure --defaults group=<resource-group-name> spring=<service-name>
az spring build-service build list
az spring build-service build show --name <build-name>
az spring build-service build create --name <build-name> --artifact-path <artifact-path>
az spring build-service build update --name <build-name> --artifact-path <artifact-path>
az spring build-service build delete --name <build-name>
次の Azure CLI の例は、2 つのコンテナー レジストリ シナリオの成果物ファイルのビルドとデプロイを示しています。
- Azure Spring Apps マネージド コンテナー レジストリ。
- ユーザーが管理するコンテナー レジストリ。
この例では、1 つのコマンドでビルドとデプロイを行います。 次のコマンドは、コンテナー イメージにアプリケーションをビルドするビルダーを指定し、アプリケーションを Azure Springs Apps Enterprise サービス インスタンスに直接デプロイします。
ビルダーを指定しないと、default
ビルダーが使用されます。
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--artifact-path <path-to-your-JAR-file>
成果物ファイルを使用してアプリをデプロイする場合は、--artifact-path
を使用してファイル パスを指定します。 JAR ファイルと WAR ファイルの両方を使用できます。
Azure CLI で WAR パッケージがシン JAR として検出された場合は、--disable-validation
を使用して検証を無効にします。
次の例では、--source-path
パラメーターを使用してソース コード フォルダーをアクティブなデプロイに展開し、フォルダーを指定します。
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--builder <builder-name> \
--source-path <path-to-source-code>
アプリをビルドするようにビルド環境を構成することもできます。 たとえば、Java アプリケーションでは、BP_JVM_VERSION
ビルド環境を使用して JDK のバージョンを指定できます。
ビルド環境を指定するには、次の例に示すように、--build-env
を使用します。 使用可能なビルド環境変数については、この記事の後半で説明します。
次のコマンドは、アプリケーションをデプロイします。
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--build-env <key1=value1> <key2=value2> \
--builder <builder-name> \
--artifact-path <path-to-your-JAR-file>
ビルドごとに、次の例に示すように、ビルド リソースを指定することもできます。
次のコマンドは、アプリケーションをデプロイします。
az spring app deploy \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <app-name> \
--build-env <key1=value1> <key2=value2> \
--build-cpu <build-cpu-size> \
--build-memory <build-memory-size> \
--builder <builder-name> \
--artifact-path <path-to-your-JAR-file>
既定のビルド CPU/メモリ リソースは 1 vCPU, 2 Gi
です。 アプリケーションで、より少ない量のメモリが必要な場合、またはより多くの量のメモリが必要な場合は、--build-memory
を使用してメモリ リソース (500Mi
、1Gi
、2Gi
など) を指定します。 アプリケーションで、より少ない量の CPU リソースが必要な場合、またはより多くの量の CPU リソースが必要な場合は、--build-cpu
を使用してメモリ リソース (500m
、1
、2
など) を指定します。 ビルドの CPU/メモリ リソースの上限は 8 vCPU, 16Gi
です。
CPU リソースとメモリ リソースは、ビルド サービス エージェント プールのサイズによって制限されます。 詳細については、「Tanzu Build Service を使用する」の「ビルド エージェント プール」セクションを参照してください。 処理ビルド リソース クォータの合計がエージェント プールのサイズを超えることはできません。
ビルド タスクの並列番号は、エージェント プールのサイズと各ビルド リソースによって異なります。 たとえば、ビルド リソースが既定の 1 vCPU, 2 Gi
で、エージェント プールのサイズが 6 vCPU, 12 Gi
である場合、並列ビルド番号は 6 になります。
リソース クォータの制限により、その他のビルド タスクはしばらくブロックされます。
アプリケーションはポート 8080 でリッスンする必要があります。 Spring Boot アプリケーションは、8080 を自動的に使用するように SERVER_PORT
をオーバーライドします。
デプロイでサポートされている言語
次の表は、各言語でサポートされている機能を示しています。
機能 | Java | Python | ノード | .NET Core | Go | 静的ファイル | Java ネイティブ イメージ | PHP |
---|---|---|---|---|---|---|---|---|
アプリのライフサイクル管理 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
エンドポイントの割り当て | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Azure Monitor | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
追加設定なしの APM 統合 | ✅ | |||||||
ブルーグリーン デプロイ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
カスタム ドメイン | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
スケーリング - 自動スケーリング | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
スケーリング - 手動スケーリング (スケールインおよびアウト、スケールアップおよびダウン) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
マネージド ID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ️ | ✅ |
API portal for VMware Tanzu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Spring Cloud Gateway for VMware Tanzu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Application Configuration Service for VMware Tanzu | ✅ | ✅ | ||||||
VMware Tanzu Service Registry | ✅ | ✅ | ||||||
VMware Tanzu の Application Live View | ✅ | ✅ | ||||||
仮想ネットワーク | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
発信 IP アドレス | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
E2E TLS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
高度なトラブルシューティング - スレッド、ヒープ、JFR ダンプ | ✅ | |||||||
Bring your own storage | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
サービス バインドとリソース コネクタの統合 | ✅ | ✅ | ||||||
可用性ゾーン | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
アプリのライフサイクル イベント | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
アプリ サイズの削減 - 0.5 vCPU および 512 MB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Terraform と Azure パイプライン タスクを使用してアプリのデプロイを自動化する | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
論理的な削除 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
対話型の診断エクスペリエンス (AppLens ベース) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
SLA | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
正常性プローブをカスタマイズする | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
トラブルシューティングのための Web シェル接続 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ️ ✅ | ✅ |
リモート デバッグ | ✅ | ️ | ️ | ️ |
さまざまな言語アプリでサポートされている構成の詳細については、この記事の後半の対応するセクションを参照してください。
Java ネイティブ イメージの制限事項
ネイティブ イメージは、Java コードを事前にネイティブ実行可能ファイルにコンパイルするテクノロジです。 ネイティブ イメージは、インスタント スタートアップやメモリ消費量の削減など、さまざまな利点をもたらします。 ネイティブ イメージを軽量のコンテナー イメージにパッケージ化して、より迅速かつ効率的なデプロイを実現できます。 クローズド ワールド最適化のため、次の制限事項が適用されます。
- 次の Java 機能では、実行可能ファイルのビルド時に構成が必要です。
- 動的クラスの読み込み
- リフレクション
- 動的プロキシ
- JNI (Java ネイティブ インターフェイス)
- シリアル化
- バイトコードは実行時に使用できなくなったため、JVMTI を対象とするツールを使用したデバッグと監視は実行できません。
Java ネイティブ イメージの制限のため、Azure Spring Apps では次の機能はサポートされていません。 Java ネイティブ イメージとコミュニティが制限を克服すると、Azure Spring Apps はこれらをサポートします。
機能 | サポートされない理由 |
---|---|
Azure Monitor | GraalVM ビルドネイティブ イメージでは、JVM メトリックはサポートされていません。 |
スケーリング - 自動スケーリング | GraalVM ビルドネイティブ イメージでは、JVM メトリックはサポートされていません。 |
追加設定なしの APM 統合 | APM ベンダー & ビルドパックはネイティブ イメージをサポートしていません。 |
マネージド ID | Azure SDK はネイティブ イメージをサポートしていません。 |
高度なトラブルシューティング – スレッド、ヒープ、JFR ダンプ | GraalVM ビルドネイティブ イメージでは、スレッド、ヒープ、JFR ダンプはサポートされていません。 |
リモート デバッグ | GraalVM ネイティブ イメージでは、リモート デバッグはサポートされていません。 |
Service Connector を使用したパスワードレス接続 | Azure Java SDK はネイティブ イメージをサポートしていません。 |
Note
次の異なる言語のビルドとデプロイの構成セクションでは、--build-env
は、ビルド フェーズで環境が使用されていることを意味します。 --env
は、ランタイム フェーズで環境が使用されていることを意味します。
既定のバージョンが変更された場合に備えて、言語バージョンを指定することをお勧めします。 たとえば、--build-env BP_JVM_VERSION=11.*
を使用して、JDK バージョンとして Java 11 を指定します。 他の言語の場合は、各言語の次の説明で環境変数の名前を取得できます。
Java アプリケーションをデプロイする
Java アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/java-azure です。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
Microsoft OpenJDK を提供します。 | JVM バージョンを構成します。 既定の JDK バージョンは 17 です。 現在サポートされているバージョン: JDK 8、11、17、21。 | BP_JVM_VERSION |
--build-env BP_JVM_VERSION=11.* |
ランタイム環境。 Java Native Memory Tracking (NMT) が有効かどうかを構成します。 既定値は true です。 JDK 8 ではサポートされていません。 | BPL_JAVA_NMT_ENABLED |
--env BPL_JAVA_NMT_ENABLED=true |
|
Java Native Memory Tracking (NMT) 出力の詳細レベルを構成します。 既定値は summary です。 詳細な NMT 出力については detail に設定します。 | BPL_JAVA_NMT_LEVEL |
--env BPL_JAVA_NMT_ENABLED=summary |
|
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
Application Insights、Dynatrace、Elastic、New Relic、App Dynamic APM エージェントと統合します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし | 該当なし |
Apache Tomcat または TomEE を使用して WAR パッケージをデプロイします。 | 使用するアプリケーション サーバーを設定します。 Tomcat を使用するには tomcat に設定し、TomEE を使用するには、tomEE に設定します。 既定値は tomcat です。 | BP_JAVA_APP_SERVER |
--build-env BP_JAVA_APP_SERVER=tomee |
Spring Boot アプリケーションをサポートします。 | ビルド時に Spring Cloud Bindings のサポートをイメージに提供するかどうかを示します。 既定値は false です。 | BP_SPRING_CLOUD_BINDINGS_DISABLED |
--build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false |
実行時にバインドから Spring Boot 環境のプロパティを自動構成するかどうかを示します。 この機能を使うには、ビルド時に Spring Cloud Binding が既にインストールされている必要があります。されていない場合は何も実行されません。 既定値は false です。 | BPL_SPRING_CLOUD_BINDINGS_DISABLED |
--env BPL_SPRING_CLOUD_BINDINGS_DISABLED=false |
|
ソースからの Maven ベースのアプリケーションの構築をサポートします。 | マルチモジュール プロジェクトに使用されます。 アプリケーション成果物を検索するモジュールを示します。 既定ではルート モジュール (空)。 | BP_MAVEN_BUILT_MODULE |
--build-env BP_MAVEN_BUILT_MODULE=./gateway |
ソースからの Gradle ベースのアプリケーションの構築をサポートします。 | マルチモジュール プロジェクトに使用されます。 アプリケーション成果物を検索するモジュールを示します。 既定ではルート モジュール (空)。 | BP_GRADLE_BUILT_MODULE |
--build-env BP_GRADLE_BUILT_MODULE=./gateway |
作成したイメージでラベルの構成を有効にします。 | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
JProfiler エージェントを統合します。 | JProfiler サポートを統合するかどうかを示します。 既定値は false です。 | BP_JPROFILER_ENABLED |
ビルド フェーズ: --build-env BP_JPROFILER_ENABLED=true ランタイム フェーズ: --env BPL_JPROFILER_ENABLED=true BPL_JPROFILER_PORT=<port> (省略可能、既定値は 8849) BPL_JPROFILER_NOWAIT=true (省略可能。JProfiler がアタッチされる前に JVM が実行されるかどうかを示します。既定値は、true です。) |
実行時に JProfiler サポートを有効にするかどうかを示します。 既定値は false です。 | BPL_JPROFILER_ENABLED |
--env BPL_JPROFILER_ENABLED=false |
|
JProfiler エージェントがリッスンするポートを示します。 既定値は 8849 です。 | BPL_JPROFILER_PORT |
--env BPL_JPROFILER_PORT=8849 |
|
JProfiler がアタッチされる前に JVM が実行されるかどうかを示します。 既定値は true です。 | BPL_JPROFILER_NOWAIT |
--env BPL_JPROFILER_NOWAIT=true |
|
JRebel エージェントを統合します。 | アプリケーションには、rebel-remote.xml ファイルが含まれている必要があります。 | 該当なし | 該当なし |
AES は、アプリケーションをビルド時に暗号化し、起動時に復号化します。 | ビルド時に使用する AES キー。 | BP_EAR_KEY |
--build-env BP_EAR_KEY=<value> |
ビルド時に使用する AES キー。 | BPL_EAR_KEY |
--env BPL_EAR_KEY=<value> |
|
AspectJ Weaver エージェントを統合します。 | <APPLICATION_ROOT> /aop.xml が存在し、aspectj-weaver.*.jar が存在します。 |
該当なし | 該当なし |
.NET アプリケーションをデプロイする
.NET アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/dotnet-core です。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
.NET Core ランタイム バージョン を構成します。 | Net6.0 と Net8.0 をサポートします。 runtimeconfig.json または MSBuild プロジェクト ファイルを使用して構成できます。 既定のランタイムは 6.0.* です。 |
該当なし | 該当なし |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
Dynatrace エージェントおよび New Relic APM エージェントと統合します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし | 該当なし |
作成したイメージでラベルの構成を有効にします。 | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
Python アプリケーションをデプロイする
Python アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/python です。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
Python バージョンを指定します。 | 3.8.*、3.9.*、3.10.*、3.11.*、3.12.* をサポートします。 既定値は 3.10.* です ビルド時に BP_CPYTHON_VERSION 環境変数を使用してバージョンを指定できます。 |
BP_CPYTHON_VERSION |
--build-env BP_CPYTHON_VERSION=3.8.* |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
作成したイメージでラベルの構成を有効にします。 | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
Go アプリケーションをデプロイする
Go アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/go です。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
Go のバージョンを指定します。 | 1.21.*、1.22.* をサポートします。 既定値は 1.21.* です。 Go バージョンは、アプリの go.mod ファイルから自動的に検出されます。 ビルド時に BP_GO_VERSION 環境変数を設定することで、このバージョンをオーバーライドできます。 |
BP_GO_VERSION |
--build-env BP_GO_VERSION=1.22.* |
複数のターゲットを構成します。 | Go ビルドの複数のターゲットを指定します。 | BP_GO_TARGETS |
--build-env BP_GO_TARGETS=./some-target:./other-target |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
Dynatrace APM エージェントと統合します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし | 該当なし |
作成したイメージでラベルの構成を有効にします。 | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
Node.js アプリケーションをデプロイする
Node.js アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/nodejs です。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
ノードのバージョンを指定します。 | 16.*、18.*、19.*、20.* をサポートします。 既定値は 20.* です。 Node バージョンは、.nvmrc を使用するか、アプリケーション ディレクトリ ルートにある .node-version ファイルを使用して指定できます。 BP_NODE_VERSION は設定値をオーバーライドします。 |
BP_NODE_VERSION |
--build-env BP_NODE_VERSION=20.* |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
Dynatrace、Elastic、New Relic、App Dynamic APM エージェントと統合します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし | 該当なし |
作成したイメージでラベルの構成を有効にします。 | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
Angular Live Development Server を使用して Angular アプリケーションをデプロイします。 | package.json で ng serve を実行する前にホストを指定します: ng serve --host 0.0.0.0 --port 8080 --public-host <your application domain name> 。 アプリケーションのドメイン名は、アプリケーション の [概要] ページの [URL] セクションで使用できます。 続行する前に、プロトコル https:// を削除します。 |
BP_NODE_RUN_SCRIPTS NODE_ENV |
--build-env BP_NODE_RUN_SCRIPTS=build NODE_ENV=development |
WebServer アプリケーションをデプロイする
WebServer アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/web-servers です。
詳細については、「Web 静的ファイルをデプロイする」を参照してください。
Java ネイティブ イメージ アプリケーションをデプロイする (プレビュー)
Java ネイティブ イメージ アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/java-native-image です。
tanzu-buildpacks/java-native-image
ビルドパックを使用して Spring Boot ネイティブ イメージ アプリケーションをデプロイできます。 Spring Native では、Spring Boot アプリケーションのネイティブ実行可能ファイルへのコンパイルがサポートされます。 ビルドパックでは、Liberica Native Image Kit (NIK) を使用して Spring Boot アプリケーションのネイティブ イメージを作成します。これらのアプリケーションは完全にサポートされています。
Java ネイティブ イメージをビルドするときは、ビルド環境 BP_NATIVE_IMAGE
を true
に設定し、ビルド メモリ リソースは 8Gi 未満にする必要があります。 ビルド サービス エージェント プールのサイズは、4 vCPU, 8 Gi
以下にする必要があります。 詳細については、「Tanzu Build Service を使用する」の「ビルド エージェント プール」セクションを参照してください。
ネイティブ イメージをより小さなサイズのコンテナー イメージにビルドする場合は、Jammy Tiny
OS スタックでビルダーを使用することをお勧めします。 詳細については、「OS スタックの推奨事項」セクションを参照してください。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
Bellsoft OpenJDK と統合します。 | JDK バージョンを構成します。 現在サポートされているバージョン: JDK 8、11、17、21。 | BP_JVM_VERSION |
--build-env BP_JVM_VERSION=17 |
native-image コマンドの引数を構成します。 |
native-image コマンドに直接渡す引数。 これらの引数は有効で正しい形式である必要があります。そうでない場合、native-image コマンドが失敗します。 | BP_NATIVE_IMAGE_BUILD_ARGUMENTS |
--build-env BP_NATIVE_IMAGE_BUILD_ARGUMENTS="--no-fallback" |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし。 | 適用不可。 |
作成したイメージでラベルの構成を有効にする | 短い環境変数名を持つ OCI で指定されたラベルと、1 つの環境変数でスペース区切りの構文を使用した任意のラベルの両方を構成します。 | BP_IMAGE_LABELS BP_OCI_AUTHORS その他の環境変数については、こちらを参照してください。 |
--build-env BP_OCI_AUTHORS=<value> |
ソースからの Maven ベースのアプリケーションの構築をサポートします。 | マルチモジュール プロジェクトに使用されます。 アプリケーション成果物を検索するモジュールを示します。 既定ではルート モジュール (空)。 | BP_MAVEN_BUILT_MODULE |
--build-env BP_MAVEN_BUILT_MODULE=./gateway |
Java ネイティブ イメージにはいくつかの制限があります。 詳細については、「Java ネイティブ イメージの制限事項」セクションを参照してください。
PHP アプリケーションをデプロイする
PHP アプリケーションをデプロイするためのビルドパックは、tanzu-buildpacks/php です。
Tanzu PHP ビルドパックは、フル OS スタックとのみ互換性があります。 Jammy Full
OS スタックでビルダーを使用することをお勧めします。 詳細については、「OS スタックの推奨事項」セクションを参照してください。
次の表に、Azure Spring Apps でサポートされている機能を示します。
機能の説明 | Comment | 環境変数 | 使用方法 |
---|---|---|---|
PHP バージョンを指定します。 | PHP バージョンを構成します。 現在サポートされているバージョン: PHP 8.1.*、8.2.*、8.3.*。 既定値は 8.1.* です | BP_PHP_VERSION |
--build-env BP_PHP_VERSION=8.1.* |
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 | 「APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 | 該当なし | 該当なし |
Dynatrace、New Relic、App Dynamic APM エージェントと統合します。 | 「APM 統合と CA 証明書を構成する方法」を参照してください。 | 該当なし | 該当なし |
Web サーバーを選択します。 | 設定オプションは、php-server、httpd、nginx です。 既定値は php-server です。 | BP_PHP_SERVER |
--build-env BP_PHP_SERVER=httpd |
Web ディレクトリを構成します。 | Web サーバーが HTTPD または NGINX の場合、Web ディレクトリは既定で htdocs になります。 Web サーバーが PHP 組み込みサーバーの場合、Web ディレクトリは既定で /workspace になります。 | BP_PHP_WEB_DIR |
--build-env BP_PHP_WEB_DIR=htdocs |