共用方式為


如何在 Azure Spring 應用程式企業版方案中部署 polyglot 應用程式

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。

本文適用於:❌基本/標準 ✔️ Enterprise

本文顯示如何在 Azure Spring 應用程式企業版方案中部署 polyglot 應用程式,以及這些 polyglot 應用程式如何使用組建套件所提供的建置服務功能。

必要條件

在服務執行個體中部署 polyglot 應用程式

本節適用於在啟用建置服務時建置和部署 polyglot 應用程式。 如果您停用建置服務,則只能使用自訂容器映像來部署應用程式。 您可以建立自己的映像,或使用 Azure Spring 應用程式企業版執行個體所建置的映像。 如需詳細資訊,請參閱使用自訂容器映像來部署應用程式

管理建立器

當您建立 Azure Spring 應用程式企業版執行個體時,必須從下列其中一個支援的語言系列組建套件中選擇預設建立器:

如需詳細資訊,請參閱適用於 VMware Tanzu 的語言系列組建套件

這些組建套件支援使用 Java、.NET Core、Go、Web 靜態檔案、Node.js 和 Python 應用程式的原始程式碼或成品來進行建置。 您也可以在建立或檢視建立器期間查看組建套件版本。 而且,您可以指定組建套件和堆疊來建立自訂建立器。

Azure Spring 應用程式服務執行個體中所設定的所有建立器都會列在 [建置服務] 頁面上,如下列螢幕擷取畫面所示:

螢幕擷取畫面:Azure 入口網站顯示已醒目提示 [建立器] 清單的 [建置服務] 頁面。

選取 [新增] 以建立新的產生器。 下列螢幕擷取畫面顯示您應該用來建立自訂建立器的資源。 OS 堆疊包括 Bionic BaseBionic FullJammy TinyJammy BaseJammy Full。 Bionic 是以 Ubuntu 18.04 (Bionic Beaver) 為基礎,而 Jammy 是以 Ubuntu 22.04 (Jammy Jellyfish) 為基礎。 如需詳細資訊,請參閱 OS 堆疊建議一節。

建議您使用 Jammy OS Stack 來建立您的建立器,因為 VMware 即將淘汰 Bionic OS Stack

螢幕擷取畫面:Azure 入口網站顯示已醒目提示 OS Stack 和所選取組建套件名稱的 [新增建立器] 頁面。

您也可以在部署中未使用建置器時編輯自訂建置器。 您可以更新組建套件或 OS 堆疊,但產生器名稱為唯讀。

螢幕擷取畫面:Azure 入口網站顯示已醒目提示省略號按鈕和 [編輯建立器] 功能表選項的 [建置服務] 頁面。

建置器是持續提供給部署的資源。 其提供最新的執行階段映像和最新的組建套件。

要使用建立器來建置現有的使用中部署時,您無法刪除建立器。 若要刪除處於此狀態的建立器,請使用下列步驟:

  1. 將設定儲存為新的建立器。
  2. 使用新的建立器來部署應用程式。 部署會連結至新的建立器。
  3. 將上一個建立器下方的部署移轉至新的建立器。
  4. 刪除原始建立器。

OS 堆疊建議

在 Azure Spring 應用程式中,建議您使用 Jammy OS Stack 來建立您的建立器,因為 VMware 已將 Bioinic OS Stack 排入取代項目。 下列清單描述可用的選項:

  • Jammy Tiny:適用於針對最小可能大小和安全性使用量來建置最小映像。 與建置 Java 原生映像相同,其可以讓最終的容器映像更小。 整合式程式庫有所限制。 例如,您無法連線至應用程式執行個體以進行疑難排解,因為沒有 shell 程式庫。

    • 大部分 Go 應用程式。
    • Java 應用程式。 某些 Apache Tomcat 設定選項 (例如設定 bin/setenv.sh) 無法使用,因為 Tiny 沒有殼層。
  • Jammy Base:適用於大部分沒有原生延伸模組的應用程式。

    • Java 應用程式和 .NET Core 應用程式。
    • 需要一些 C 程式庫的 Go 應用程式。
    • 沒有原生延伸模組的 Node.js、Python 或 Web Servers 應用程式。
  • Jammy Full:包括大部分的程式庫,並且適用於具有原生延伸模組的應用程式。 例如,其包括更完整的字型庫。 如果您的應用程式依賴原生延伸模組,請使用 Full 堆疊。

    • 具有原生延伸模組的 Node.js 或 Python 應用程式。

如需詳細資訊,請參閱 VMware 文件中的 Ubuntu 堆疊

管理容器登錄

本節顯示當您使用自己的容器登錄來啟用建置服務時,如何管理建置服務所使用的容器登錄。 如果您使用 Azure Spring 應用程式受控容器登錄來啟用建置服務,即可略過本節。

使用建置服務來啟用使用者容器登錄之後,您可以使用 Azure 入口網站或 Azure CLI 來顯示和設定登錄。

使用下列步驟,以顯示、新增、編輯和刪除容器登錄:

  1. 開啟 Azure 入口網站

  2. 在功能窗格中,選取 [容器登錄]

  3. 選取 [新增] 以建立容器登錄。

    螢幕擷取畫面:Azure 入口網站顯示含有 [新增容器登錄] 按鈕的 [容器登錄] 頁面。

  4. 針對容器登錄,選取省略號 (...) 按鈕,然後選取 [編輯] 以檢視登錄設定。

    螢幕擷取畫面:Azure 入口網站顯示 [容器登錄] 頁面。

  5. 檢閱 [編輯容器登錄] 頁面上的值。

    螢幕擷取畫面:Azure 入口網站顯示已開啟 [編輯容器登錄] 窗格的 [容器登錄] 頁面。

  6. 若要刪除容器登錄,請選取省略號 (...) 按鈕,然後選取 [刪除] 以刪除登錄。 如果建置服務使用容器登錄,則無法將其刪除。

    螢幕擷取畫面:Azure 入口網站顯示已開啟 [編輯容器登錄] 窗格並醒目提示 [使用者名稱和密碼] 方塊的 [容器登錄] 頁面。

建置服務可以使用容器登錄,也可以變更相關聯的容器登錄。 此程序相當耗時。 變更發生時,會重建建置服務下方的所有建立器和組建資源,然後將最後的容器映像推送至新的容器登錄。

使用下列步驟,以切換與建置服務相關聯的容器登錄:

  1. 開啟 Azure 入口網站

  2. 在功能窗格中,選取 [建置服務]

  3. 選取 [參考的容器登錄] 以更新建置服務的容器登錄。

    螢幕擷取畫面:Azure 入口網站顯示已醒目提示所參考容器登錄的 [建置服務] 頁面。

建置和部署 polyglot 應用程式

您可以使用容器登錄,以下列方式來建置和部署 polyglot 應用程式:

  • 針對使用 Azure Spring 應用程式受控容器登錄的建置服務,您可以將應用程式建置為映像,然後將其部署至目前的 Azure Spring 應用程式服務執行個體。 使用 az spring app deploy 命令,以一起執行建置和部署。

  • 針對使用使用者受控容器登錄的建置服務,您可以將應用程式建置為容器映像,然後將映像部署至目前的 Azure Spring 應用程式企業版執行個體和其他執行個體。 build 和 deploy 命令是分開的。 您可以使用 build 命令來建立或更新組建,然後使用 deploy 命令來將容器映像部署至服務執行個體。

如需詳細資訊,請參閱使用 Tanzu 建置服務建置服務隨選一節。

下列範例顯示一些可使用的有用 build 命令。

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 範例顯示如何針對兩個容器登錄案例建置和部署成品檔案:

  • Azure Spring 應用程式受控容器登錄。
  • 使用者受控容器登錄。

此範例會使用一個命令來進行建置和部署。 下列命令指定要將應用程式建置為容器映像的產生器,然後將應用程式直接部署至 Azure Spring 應用程式企業版服務執行個體。

如果您未指定建立器,則會使用 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 資源數量,請使用 --build-cpu 來指定 CPU 資源,例如 500m12 等等。 組建的最大 CPU/記憶體資源限制為 8 vCPU, 16Gi

CPU 和記憶體資源受限於建置服務代理程式集區大小。 如需詳細資訊,請參閱使用 Tanzu 建置服務組件套件繫結一節。 處理組建資源配額的總和不能超過代理程式集區大小。

平行建置工作數目取決於代理程式集區大小和每個組建資源。 例如,如果組建資源是預設值 1 vCPU, 2 Gi,而代理程式集區大小為 6 vCPU, 12 Gi,則平行組建數目為 6。

因為資源配額限制,所以會將其他建置工作封鎖一段時間。

您的應用程式必須接聽連接埠 8080。 Spring Boot 應用程式會覆寫 SERVER_PORT 以自動使用 8080。

部署所支援的語言

下表指出針對每個語言所支援的功能。

功能 Java Python 節點 .NET Core Go 靜態檔案 Java 原生映像 PHP
應用程式生命週期管理 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
指派端點 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Azure 監視器 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
現成的 APM 整合 ✔️
藍/綠部署 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
自訂網域 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
調整 - 自動調整 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
調整 - 手動調整 (縮減/擴增、擴大/縮小) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
受控識別 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
適用於 VMware Tanzu 的 API 入口網站 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
適用於 VMware Tanzu 的 Spring Cloud 閘道 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
適用於 VMware Tanzu 的應用程式設定服務 ✔️ ✔️
VMware Tanzu 服務登錄 ✔️ ✔️
VMware Tanzu 的應用程式即時檢視 ✔️ ✔️
虛擬網路 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
傳出 IP 位址 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
E2E TLS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
進階疑難排解 - 執行緒/堆積/JFR 傾印 ✔️
使用自己的儲存體 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
整合服務繫結與資源連接器 ✔️ ✔️
可用性區域 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
應用程式生命週期事件 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
減少應用程式大小 - 0.5 vCPU 和 512 MB ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
使用 Terraform 和 Azure Pipeline 工作將應用程式部署自動化 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
虛刪除 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
互動式診斷體驗 (AppLens 型) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
SLA ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
自訂健康情況探查 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
用於疑難排解的 Web 殼層連線 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ️ ✔️ ✔️
遠端偵錯 ✔️

如需不同語言應用程式所支援設定的詳細資訊,請參閱本文稍後的對應小節。

Java 原生映像限制

原生映像是預先編譯 Java 程式碼為原生可執行檔的技術。 原生映像提供各種優點,例如立即啟動和減少記憶體耗用量。 您可以將原生映像封裝成輕量型容器映像,以更快速且更有效率地進行部署。 因為封閉世界最佳化,所以適用下列限制

  • 下列 Java 功能需要在可執行建置階段進行設定:
    • 動態類別載入
    • 反映
    • 動態 Proxy
    • JNI (Java 原生介面)
    • 序列化
  • 位元組程式碼已無法再於執行階段使用,因此無法使用以 JVMTI 為目標的工具進行偵錯和監視。

基於 Java 原生映像的限制,Azure Spring 應用程式不支援下列功能。 Java 原生映像和社群克服此限制時,Azure Spring 應用程式將予以支援。

功能 為何不予支援
Azure 監視器 GraalVM 所建置原生映像不支援 JVM 計量。
調整 – 自動調整 GraalVM 所建置原生映像不支援 JVM 計量。
現成 APM 整合 APM 廠商和組建套件不支援原生映像。
受控識別 Azure SDK 不支援原生映像。
進階疑難排解 - 執行緒/堆積/JFR 傾印 GraalVM 所建置原生映像不支援執行緒/堆積/JFR 傾印。
遠端偵錯 GraalVM 原生映像不支援遠端偵錯。
使用服務連接器的無密碼連線 Azure Java SDK 不支援原生映像。

注意

在下列不同的語言建置和部署設定區段中,--build-env 表示會在建置階段中使用環境。 --env 表示會在執行階段中使用環境。

建議您指定語言版本,以防預設版本變更。 例如,使用 --build-env BP_JVM_VERSION=11.* 以將 Java 11 指定為 JDK 版本。 針對其他語言,您可以在每個語言的下列描述中取得環境變數名稱。

部署 JAVA 應用程式

用於部署 Java 應用程式的組建套件是 tanzu-buildpacks/java-azure

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
提供 Microsoft OpenJDK。 設定 JVM 版本。 預設的 JDK 版本為 17。 目前支援:JDK 8、11、17 和 21。 BP_JVM_VERSION --build-env BP_JVM_VERSION=11.*
執行階段環境。 設定是否啟用 Java 原生記憶體追蹤 (NMT)。 預設值為 true。 JDK 8 中不予支援。 BPL_JAVA_NMT_ENABLED --env BPL_JAVA_NMT_ENABLED=true
設定 Java 原生記憶體追蹤 (NMT) 輸出的詳細資料層級。 預設值設為 summary。 設定為詳細 NMT 輸出的 detail BPL_JAVA_NMT_LEVEL --env BPL_JAVA_NMT_ENABLED=summary
在建置和執行階段將 CA 憑證新增至系統信任存放區。 請參閱如何設定 APM 整合和 CA 憑證設定應用程式建置和部署的 CA 憑證一節。 N/A N/A
與 Application Insights、Dynatrace、Elastic、New Relic、應用程式動態 APM 代理程式整合。 請參閱如何設定 APM 整合和 CA 憑證 N/A N/A
使用 Apache Tomcat 或 TomEE 來部署 WAR 套件。 設定要使用的應用程式伺服器。 設定為 tomcat 以使用 Tomcat,以及設定為 tomee 以使用 TomEE。 預設值為 tomcat BP_JAVA_APP_SERVER --build-env BP_JAVA_APP_SERVER=tomee
支援 Spring Boot 應用程式。 指出是否要在建置階段針對映像提供 Spring Cloud 繫結支援。 預設值為 false BP_SPRING_CLOUD_BINDINGS_DISABLED --build-env BP_SPRING_CLOUD_BINDINGS_DISABLED=false
指出是否要在執行階段從繫結自動設定 Spring Boot 環境屬性。 此功能需要已在建置階段安裝 Spring Cloud 繫結,否則其不會執行任何動作。 預設值為 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 指定標籤。 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 檔案。 N/A N/A
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 存在。 N/A N/A

部署 .NET 應用程式

用於部署 .NET 應用程式的組建套件是 tanzu-buildpacks/dotnet-core

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
設定 .NET Core 執行階段版本。 支援 Net6.0Net7.0Net8.0
您可以透過 runtimeconfig.json 或 MSBuild 專案檔進行設定。
預設執行階段為 6.0.*
N/A N/A
在建置和執行階段將 CA 憑證新增至系統信任存放區。 請參閱如何設定 APM 整合和 CA 憑證設定應用程式建置和部署的 CA 憑證一節。 N/A N/A
與 Dynatrace 和 New Relic APM 代理程式整合。 請參閱如何設定 APM 整合和 CA 憑證 N/A N/A
在所建立的映像上啟用標籤的設定。 在單一環境變數中,使用空格分隔語法來設定具有簡短環境變數名稱和任意標籤的 OCI 指定標籤。 BP_IMAGE_LABELS
BP_OCI_AUTHORS
請在這裡參閱更多環境變數。
--build-env BP_OCI_AUTHORS=<value>

部署 Python 應用程式

用於部署 Python 應用程式的組建套件是 tanzu-buildpacks/python

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
指定 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 憑證一節。 N/A N/A
在所建立的映像上啟用標籤的設定。 在單一環境變數中,使用空格分隔語法來設定具有簡短環境變數名稱和任意標籤的 OCI 指定標籤。 BP_IMAGE_LABELS
BP_OCI_AUTHORS
請在這裡參閱更多環境變數。
--build-env BP_OCI_AUTHORS=<value>

部署 Go 應用程式

用於部署 Go 應用程式的組建套件是 tanzu-buildpacks/go

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
指定 Go 版本。 支援 1.21.*1.22.*。 預設值為 1.21.*
從應用程式的 go.mod 檔案自動偵測到 Go 版本。 您可以在建置階段設定 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 憑證一節。 N/A N/A
與 Dynatrace APM 代理程式整合。 請參閱如何設定 APM 整合和 CA 憑證 N/A N/A
在所建立的映像上啟用標籤的設定。 在單一環境變數中,使用空格分隔語法來設定具有簡短環境變數名稱和任意標籤的 OCI 指定標籤。 BP_IMAGE_LABELS
BP_OCI_AUTHORS
請在這裡參閱更多環境變數。
--build-env BP_OCI_AUTHORS=<value>

部署 Node.js 應用程式

用於部署 Node.js 應用程式的組建套件是 tanzu-buildpacks/nodejs

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
指定 Node 版本。 支援 16.*18.*19.*20.*。 預設值為 20.*
您可以透過應用程式目錄根目錄的 .nvmrc.node-version 檔案來指定 Node 版本。 BP_NODE_VERSION 會覆寫設定。
BP_NODE_VERSION --build-env BP_NODE_VERSION=20.*
在建置和執行階段將 CA 憑證新增至系統信任存放區。 請參閱如何設定 APM 整合和 CA 憑證設定應用程式建置和部署的 CA 憑證一節。 N/A N/A
與 Dynatrace、Elastic、New Relic、應用程式動態 APM 代理程式整合。 請參閱如何設定 APM 整合和 CA 憑證 N/A N/A
在所建立的映像上啟用標籤的設定。 在單一環境變數中,使用空格分隔語法來設定具有簡短環境變數名稱和任意標籤的 OCI 指定標籤。 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 原生映像套件 (NIK) 來建立 Spring Boot 應用程式的原生映像,而且完全支援這些應用程式。

當您建置 Java 原生映像時,必須將建置環境 BP_NATIVE_IMAGE 設定為 true,而組建記憶體資源不應該小於 8Gi。 建置服務代理程式集區大小不應該小於 4 vCPU, 8 Gi。 如需詳細資訊,請參閱使用 Tanzu 建置服務組件套件繫結一節。

若要將原生映像建置成較小的大小容器映像,則建議您搭配使用建立器與 Jammy Tiny OS 堆疊。 如需詳細資訊,請參閱 OS 堆疊建議一節。

下表列出 Azure Spring 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
與 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 指定標籤。 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 應用程式中所支援的功能:

功能描述 註解 環境變數 使用方式
指定 PHP 版本。 設定 PHP 版本。 目前支援:PHP 8.1.*8.2.*8.3.*。 預設值為 8.1.* BP_PHP_VERSION --build-env BP_PHP_VERSION=8.0.*
在建置和執行階段將 CA 憑證新增至系統信任存放區。 請參閱如何設定 APM 整合和 CA 憑證設定應用程式建置和部署的 CA 憑證一節。 N/A N/A
與 Dynatrace、New Relic、應用程式動態 APM 代理程式整合。 請參閱如何設定 APM 整合和 CA 憑證 N/A N/A
選取網頁伺服器。 設定選項為 php-serverhttpdnginx。 預設值為 php-server BP_PHP_SERVER --build-env BP_PHP_SERVER=httpd
設定網站目錄。 網頁伺服器是 HTTPD 或 NGINX 時,網站目錄預設為 htdocs。 網頁伺服器是 PHP 內建伺服器時,網站目錄預設為 /workspace BP_PHP_WEB_DIR --build-env BP_PHP_WEB_DIR=htdocs

下一步