如何在 Azure Spring 應用程式企業版方案中部署 polyglot 應用程式
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於: ❎基本/標準 ✅ 企業
本文顯示如何在 Azure Spring 應用程式企業版方案中部署 polyglot 應用程式,以及這些 polyglot 應用程式如何使用組建套件所提供的建置服務功能。
必要條件
- 已佈建的 Azure Spring 應用程式企業版方案執行個體。 如需詳細資訊,請參閱快速入門:使用 Enterprise 方案建置應用程式並將其部署至 Azure Spring 應用程式。
- Azure CLI 2.45.0 版或更新版本。 使用下列命令,以安裝 Azure Spring 應用程式延伸模組:
az extension add --name spring
在服務執行個體中部署 polyglot 應用程式
本節適用於在啟用建置服務時建置和部署 polyglot 應用程式。 如果您停用建置服務,則只能使用自訂容器映像來部署應用程式。 您可以建立自己的映像,或使用 Azure Spring 應用程式企業版執行個體所建置的映像。 如需詳細資訊,請參閱使用自訂容器映像來部署應用程式。
管理建立器
當您建立 Azure Spring 應用程式企業版執行個體時,必須從下列其中一個支援的語言系列組建套件中選擇預設建立器:
- 適用於 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 應用程式服務執行個體中所設定的所有建立器都會列在 [建置服務] 頁面上,如下列螢幕擷取畫面所示:
選取 [新增] 以建立新的產生器。 下列螢幕擷取畫面顯示您應該用來建立自訂建立器的資源。 OS 堆疊包括 Bionic Base
、Bionic Full
、Jammy Tiny
、Jammy Base
和 Jammy Full
。 Bionic 是以 Ubuntu 18.04 (Bionic Beaver)
為基礎,而 Jammy 是以 Ubuntu 22.04 (Jammy Jellyfish)
為基礎。 如需詳細資訊,請參閱 OS 堆疊建議一節。
建議您使用 Jammy OS Stack
來建立您的建立器,因為 VMware 即將淘汰 Bionic OS Stack
。
您也可以在部署中未使用建置器時編輯自訂建置器。 您可以更新組建套件或 OS 堆疊,但產生器名稱為唯讀。
建置器是持續提供給部署的資源。 其提供最新的執行階段映像和最新的組建套件。
要使用建立器來建置現有的使用中部署時,您無法刪除建立器。 若要刪除處於此狀態的建立器,請使用下列步驟:
- 將設定儲存為新的建立器。
- 使用新的建立器來部署應用程式。 部署會連結至新的建立器。
- 將上一個建立器下方的部署移轉至新的建立器。
- 刪除原始建立器。
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 來顯示和設定登錄。
使用下列步驟,以顯示、新增、編輯和刪除容器登錄:
開啟 Azure 入口網站。
在功能窗格中,選取 [容器登錄]。
選取 [新增] 以建立容器登錄。
針對容器登錄,選取省略號 (...) 按鈕,然後選取 [編輯] 以檢視登錄設定。
檢閱 [編輯容器登錄] 頁面上的值。
若要刪除容器登錄,請選取省略號 (...) 按鈕,然後選取 [刪除] 以刪除登錄。 如果建置服務使用容器登錄,則無法將其刪除。
建置服務可以使用容器登錄,也可以變更相關聯的容器登錄。 此程序相當耗時。 變更發生時,會重建建置服務下方的所有建立器和組建資源,然後將最後的容器映像推送至新的容器登錄。
使用下列步驟,以切換與建置服務相關聯的容器登錄:
開啟 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
來指定記憶體資源,例如 500Mi
、1Gi
、2Gi
等等。 若應用程式需要較小或較大的 CPU 資源數量,請使用 --build-cpu
來指定 CPU 資源,例如 500m
、1
、2
等等。 組建的最大 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.0 和 Net8.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.1.* |
在建置和執行階段將 CA 憑證新增至系統信任存放區。 | 請參閱如何設定 APM 整合和 CA 憑證的設定應用程式建置和部署的 CA 憑證一節。 | N/A | N/A |
與 Dynatrace、New Relic、應用程式動態 APM 代理程式整合。 | 請參閱如何設定 APM 整合和 CA 憑證。 | N/A | N/A |
選取網頁伺服器。 | 設定選項為 php-server、httpd 和 nginx。 預設值為 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 |