共用方式為


將 Java Spring Boot 應用程式部署至 Azure Container Apps

本文說明如何將具有登入的 Java Spring Boot 應用程式部署至 Azure Container Apps Microsoft Entra 帳戶。

本文假設您只使用 [ 在本機 執行] 索引標籤完成下列其中一篇文章,而您現在想要部署至 Azure。 這些指示與下列文章中的 [部署至 Azure] 索引標籤中的指示相同:

必要條件

  • Azure 帳戶。 如果您沒有訂用帳戶,請建立免費帳戶。 您需要 Azure 訂用帳戶的「參與者」或「擁有者」權限才能繼續。 如需詳細資訊,請參閱使用 Azure 入口網站指派 Azure 角色
  • Azure CLI
  • Azure Container Apps CLI 擴充功能、版本或更新版本 0.3.47 。 若要安裝最新版本,請使用 az extension add --name containerapp --upgrade --allow-preview 命令。
  • Java 開發工具組 17 版或更高版本。
  • Maven.

準備 Spring 專案

使用下列步驟來準備專案:

  1. 使用下列 Maven 命令來建置專案:

    mvn clean verify
    
  2. 使用下列命令在本機執行範例專案:

    mvn spring-boot:run
    

設定

若要從 CLI 登入 Azure,請執行下列命令並遵循提示來完成驗證流程。

az login

若要確定您執行的是最新版本 CLI,請執行升級命令。

az upgrade

接下來,安裝或更新 CLI 的 Azure 容器應用程式延伸模組。

如果您在 Azure CLI 中執行 az containerapp 命令時收到遺漏參數的錯誤,請確定您已安裝最新版的 Azure Container Apps 擴充功能。

az extension add --name containerapp --upgrade

注意

從 2024 年 5 月開始,Azure CLI 延伸模組預設不會再啟用預覽功能。 若要存取容器應用程式預覽功能,請使用 --allow-preview true 安裝容器應用程式延伸模組。

az extension add --name containerapp --upgrade --allow-preview true

現在已安裝目前的延伸模組或模組,請註冊 Microsoft.AppMicrosoft.OperationalInsights 命名空間。

注意

Azure 容器應用程式資源已從 Microsoft.Web 命名空間移轉至 Microsoft.App 命名空間。 如需詳細資訊,請參閱 2022 年 3 月將命名空間從 Microsoft.Web 移轉至 Microsoft.App

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

建立 Azure Container Apps 環境

現在您的 Azure CLI 設定已完成,接下來您可以定義本文中使用的環境變數了。

在您的 Bash 殼層中定義下列變數。

export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"

建立資源群組。

az group create  \
    --name $RESOURCE_GROUP \
    --location $LOCATION \

使用自動產生的Log Analytics工作區建立環境。

az containerapp env create \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION

顯示容器應用程式環境的預設網域。 記下此網域以供稍後章節使用。

az containerapp env show \
    --name $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --query properties.defaultDomain

準備應用程式以進行部署

當您將應用程式部署至 Azure Container Apps 時,您的重新導向 URL 會變更為 Azure Container Apps 中已部署應用程式實例的重新導向 URL。 使用下列步驟來變更application.yml檔案中的這些設定:

  1. 流覽至應用程式的 src\main\resources\application.yml 檔案,並將 的值 post-logout-redirect-uri 變更為已部署應用程式的功能變數名稱,如下列範例所示。 請務必以您的實際值取代 <API_NAME><default-domain-of-container-app-environment> 。 例如,使用上一個步驟中 Azure Container App 環境的預設網域,以及 ms-identity-api 針對您的應用程式名稱,您將用於 https://ms-identity-api.<default-domain> post-logout-redirect-uri 值。

    post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
    
  2. 儲存此檔案之後,請使用下列命令重建您的應用程式:

    mvn clean package
    

重要

應用程式的 application.yml 檔案目前在 參數中 client-secret 保留客戶端密碼的值。 將此值保留在這個檔案中並不好的做法。 如果您將檔案認可至 Git 存放庫,您可能也會冒險。 如需建議的方法,請參閱 管理 Azure Container Apps 中的秘密。

更新您的 Microsoft Entra ID 應用程式註冊

由於重新導向 URI 會變更至 Azure Container Apps 上已部署的應用程式,因此您也需要變更 Microsoft Entra ID 應用程式註冊中的重新導向 URI。 請使用下列步驟來進行此變更:

  1. 流覽至 [適用於開發人員的 Microsoft 身分識別平台 應用程式註冊] 頁面。

  2. 使用搜尋方塊來搜尋您的應用程式註冊 ,例如 java-servlet-webapp-authentication

  3. 選取應用程式名稱以開啟您的應用程式註冊。

  4. 從選單中選擇 驗證

  5. 在 [Web - 重新導向 URI] 區段中,選取 [新增 URI]。

  6. 填寫應用程式的 URI,並附加 /login/oauth2/code/ -例如 https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/

  7. 選取儲存

部署應用程式

將 JAR 套件部署至 AAzure 容器應用程式。

注意

如有必要,您可以在 Java 建置環境變數中指定 JDK 版本。 如需詳細資訊,請參閱 在 Azure Container Apps 中建置 Java 的環境變數。

現在您可以使用 az containerapp up CLI 命令來部署 WAR 檔案。

az containerapp up \
    --name $API_NAME \
    --resource-group $RESOURCE_GROUP \
    --location $LOCATION \
    --environment $ENVIRONMENT \
    --artifact <JAR_FILE_PATH_AND_NAME> \
    --ingress external \
    --target-port 8080 \
    --query properties.configuration.ingress.fqdn

注意

預設的 JDK 版本為 17。 如果您需要變更 JDK 版本以與您的應用程式相容,可以使用 --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION> 引數來調整版本號碼。

如需更多建置環境變數,請參閱 在 Azure Container Apps 中建置 Java 的環境變數。

驗證應用程式

在此範例中 containerapp up ,命令包含 --query properties.configuration.ingress.fqdn 自變數,其會傳回完整功能變數名稱 (FQDN),也稱為應用程式的 URL。 使用下列步驟來檢查應用程式的記錄,以調查任何部署問題:

  1. [部署] 區段的 [輸出] 頁面存取輸出應用程式 URL。

  2. 從 [Azure Container Apps 實例 概觀 ] 頁面的瀏覽窗格中,選取 [ 記錄 ] 以檢查應用程式的記錄。

其他相關資訊

下一步

如需詳細資訊和其他部署選項,請參閱下列文章: