Azure Spring Apps Enterprise プランで多言語アプリをデプロイする方法

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象:❌ Basic または Standard ✔️ Enterprise

この記事では、Azure Spring Apps Enterprise プランでポリグロット アプリをデプロイする方法と、これらのポリグロット アプリで Buildpacks によって提供されるビルド サービス機能を使用する方法について説明します。

前提条件

サービス インスタンスにポリグロット アプリケーションをデプロイする

このセクションは、ビルド サービスが有効になっている場合の Polyglot アプリケーションのビルドとデプロイに適用されます。 ビルド サービスを無効にすると、カスタム コンテナー イメージのみを使用してアプリケーションをデプロイできます。 独自のイメージを作成することも、Azure Spring Apps Enterprise インスタンスによってビルドされたものを使用することもできます。 詳細については、「カスタム コンテナー イメージを使用してアプリケーションをデプロイする」を参照してください。

ビルダーを管理する

Azure Spring Apps Enterprise のインスタンスを作成するときは、次のサポートされている言語ファミリ ビルドパックのいずれかから既定のビルダーを選択する必要があります。

詳細については、「VMware Tanzu の言語ファミリ ビルドパック」を参照してください。

これらのビルドパックでは、Java、.NET Core、Go、Web 静的ファイル、Node.js、Python アプリのソース コードまたは成果物を使用したビルドがサポートされています。 ビルドパックとスタックを指定してカスタム ビルダーを作成することもできます。

Azure Spring Apps サービス インスタンスで構成されているすべてのビルダーは、次のスクリーンショットに示すように [サービスのビルド] ページに一覧表示されます。

Screenshot of the Azure portal that shows the Build Service page with the Builders list highlighted.

[追加] を選択して、新しいビルダーを作成します。 次のスクリーンショットは、カスタム ビルダーの作成時に使用すべきリソースを示しています。 OS スタックには、Bionic BaseBionic FullJammy TinyJammy Base および Jammy Full が含まれます。 Bionic は Ubuntu 18.04 (Bionic Beaver) に基づいており、Jammy は Ubuntu 22.04 (Jammy Jellyfish) に基づいています。 詳細については、「OS スタックの推奨事項」セクションを参照してください。

VMware では Bionic OS Stack を非推奨としているため、Jammy OS Stack を使用してビルダーを作成することをお勧めします。

Screenshot of the Azure portal that shows the Add Builder page with the OS Stack and selected buildpack name highlighted.

デプロイでビルダーが使用されていない場合は、カスタム ビルダーを編集することもできます。 ビルドパックや OS スタックは更新できますが、ビルダーの名前は読み取り専用です。

Screenshot of the Azure portal that shows the Build Service page with the ellipsis button and Edit builder menu option highlighted.

このビルダーは、デプロイに継続的に提供されるリソースです。 このビルダーでは、最新のランタイム イメージと最新のビルドパックを利用できます。

既存のアクティブなデプロイがビルダーによってビルドされている場合、そのビルダーを削除することはできません。 この状態のビルダーを削除するには、次の手順に従います。

  1. 構成を新しいビルダーとして保存します。
  2. 新しいビルダーを使用してアプリをデプロイします。 デプロイは新しいビルダーにリンクされます。
  3. 以前のビルダーの下にあるデプロイを新しいビルダーに移行します。
  4. 元のビルダーを削除します。

OS スタックの推奨事項

Azure Spring Apps では、Jammy OS Stack を使用してビルダーを作成することをお勧めします。これは、Bioinic OS Stack が VMware によって廃止される予定であるためです。 次の一覧では、使用可能なオプションについて説明します。

  • Jammy Tiny:可能な限り小さいサイズとセキュリティフットプリントのための最小限のイメージを構築するのに適しています。 Java ネイティブ イメージのビルドと同様に、最終的なコンテナー イメージを小さくできます。 統合ライブラリは制限されています。 たとえば、shell ライブラリがないため、トラブルシューティングのためにアプリ インスタンスに接続できません

    • ほとんどの Go アプリ。
    • Java アプリ。 Bin/setenv.sh の設定など、一部の Apache Tomcat 構成オプションは、Tiny にシェルがないため使用できません。
  • 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 を使用してレジストリを表示および構成できます。

コンテナー レジストリを表示、追加、編集、削除するには、次の手順に従います。

  1. Azure portal を開きます。

  2. ナビゲーション ウィンドウで [コンテナー レジストリ] を選択します。

  3. [追加] を選択して、コンテナー レジストリを作成します。

    Screenshot of Azure portal that shows the Container registry page with Add container registry button.

  4. コンテナー レジストリの場合は、省略記号 ([...]) ボタンを選択し、[編集] を選択してレジストリ構成を表示します。

    Screenshot of the Azure portal that shows the Container registry page.

  5. [Edit container registry] (コンテナー レジストリの編集) ページの値を確認します。

    Screenshot of the Azure portal that shows the Container registry page with Edit container registry pane open for the current container registry in the list.

  6. コンテナー レジストリを削除するには、省略記号 ([...]) ボタンを選択し、[削除] を選択してレジストリを削除します。 コンテナー レジストリがビルド サービスによって使用されている場合は、削除できません。

    Screenshot of Azure portal that shows the Container registry page with Delete container registry pane open for the current container registry in the list.

ビルド サービスでは、コンテナー レジストリを使用できます。また、関連するコンテナー レジストリを変更することもできます。 このプロセスには時間がかかります。 変更が行われると、ビルド サービスの下にあるすべてのビルダーとビルド リソースが再構築され、最終的なコンテナー イメージが新しいコンテナー レジストリにプッシュされます。

ビルド サービスに関連付けられているコンテナー レジストリを切り替えるには、次の手順に従います。

  1. Azure portal を開きます。

  2. ナビゲーション ウィンドウで、[ビルド サービス] を選択します。

  3. [Referenced container registry] (参照コンテナー レジストリ) を選択して、ビルド サービスのコンテナー レジストリを更新します。

    Screenshot of the Azure portal that shows the Build Service page with referenced container registry highlighted.

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 を使用してメモリ リソース (500Mi1Gi2Gi など) を指定します。 アプリケーションで、より少ない量の CPU リソースが必要な場合、またはより多くの量の CPU リソースが必要な場合は、--build-cpu を使用してメモリ リソース (500m12 など) を指定します。 ビルドの 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 では次の機能はサポートされていません。 Azure Spring Apps は、Java ネイティブ イメージとコミュニティが制限を克服したときにそれらをサポートします。

機能 サポートされない理由
Azure Monitor GraalVM ビルドネイティブ イメージでは、JVM メトリックはサポートされていません。
スケーリング - 自動スケーリング GraalVM ビルドネイティブ イメージでは、JVM メトリックはサポートされていません。
追加設定なしの APM 統合 APM ベンダーと Buildpack はネイティブ イメージをサポートしていません。
マネージド 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 バージョンは 11 です。 現在サポートされている: 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 Bindings がビルド時に既にインストールされている必要があります。または、何も行われません。 既定値は 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.0Net7.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.20.*1.21.* をサポートします。 既定値は 1.20 です。*
Go バージョンは、アプリの go.mod ファイルから自動的に検出されます。 ビルド時に BP_GO_VERSION 環境変数を設定することで、このバージョンをオーバーライドできます。
BP_GO_VERSION --build-env BP_GO_VERSION=1.20.*
複数のターゲットを構成します。 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=19.*
ビルド時と実行時に、システム信頼ストアに 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.jsonng 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_IMAGEtrue に設定し、ビルド メモリ リソースは 8Gi 未満にする必要があります。 ビルド サービス エージェント プールのサイズは、4 vCPU, 8 Gi 以下にする必要があります。 詳細については、「Tanzu Build Service を使用する」の「ビルド エージェント プール」セクションを参照してください。

ネイティブ イメージをより小さなサイズのコンテナー イメージにビルドする場合は、Jammy Tiny OS スタックでビルダーを使用することをお勧めします。 詳細については、「OS スタックの推奨事項」セクションを参照してください。

次の表に、Azure Spring Apps でサポートされている機能を示します。

機能の説明 Comment 環境変数 使用方法
Bellsoft OpenJDK と統合します。 JDK バージョンを構成します。 現在サポートされている: JDK 8、11、17、20。 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.0.*8.1.*8.2.*。 既定値は 8.1.* です BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
ビルド時と実行時に、システム信頼ストアに CA 証明書を追加します。 APM 統合と CA 証明書を構成する方法」の「アプリのビルドとデプロイ用に CA 証明書を構成する」セクションを参照してください。 該当なし 該当なし
Dynatrace、New Relic、App Dynamic APM エージェントと統合します。 APM 統合と CA 証明書を構成する方法」を参照してください。 該当なし 該当なし
Web サーバーを選択します。 設定オプションは、php-serverhttpdnginx です。 既定値は 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

次のステップ