Share via


快速入門:將微服務應用程式部署至 Azure Spring Apps

注意

前 50 個 vCPU 小時和 100 GB 的記憶體是每月可用。 如需詳細資訊,請參閱 Azure Spring Apps 在 Azure 部落格上的應用程式上執行更多成本、成本降低。

注意

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

本文說明如何使用已知的範例應用程式 PetClinic 將微服務應用程式部署至 Azure Spring Apps。

寵物診所範例示範微服務架構模式。 下圖顯示 Azure Spring Apps 企業版方案中 PetClinic 應用程式的架構。

此圖顯示 Azure Spring Apps 企業版方案中 PetClinic 範例的架構。

下圖顯示寵物診所範例的下列架構流程和關聯性:

  • 使用 Azure Spring Apps 來管理前端和後端應用程式。 後端應用程式是使用 Spring Boot 所建置,而每個應用程式都會使用 HSQLDB 作為永續性存放區。 重新分叉的前端應用程式是以寵物診所 API 閘道應用程式為基礎,Node.js作為獨立前端 Web 應用程式。
  • 使用 Azure Spring Apps 上的受控元件,包括服務登錄、應用程式組態服務、Spring Cloud 閘道和應用程式即時檢視。 應用程式組態服務會讀取 Git 存放庫組態。
  • 公開 Spring Cloud 閘道的 URL 以將要求路由傳送至後端服務應用程式,並公開應用程式即時檢視的 URL 以監視後端應用程式。
  • 使用 Log Analytics 工作區分析記錄。
  • 使用 Application Insights 監視效能。

注意

本文使用簡化的 PetClinic 版本,其使用未準備好快速部署到 Azure Spring Apps 的記憶體內部資料庫。

Tanzu 開發人員工具會公開應用程式實時檢視的公用存取權,這是風險點。 生產環境需要保護存取。 如需詳細資訊,請參閱在 Azure Spring Apps Enterprise 方案中設定 Tanzu Dev Tools 的<設定 Dev Tools 入口網站>一節。

寵物診所範例示範微服務架構模式。 下圖顯示 Azure Spring Apps Standard 方案中 PetClinic 應用程式的架構。

此圖顯示 Azure Spring Apps 標準方案中 PetClinic 範例的架構。

下圖顯示寵物診所範例的下列架構流程和關聯性:

  • 使用 Azure Spring Apps 來管理 Spring Boot 應用程式。 每個應用程式都會使用 HSQLDB 作為永續性存放區。
  • 在 Azure Spring Apps 上使用受控元件 Spring Cloud Config Server 和 Eureka Service Registry。 組態伺服器會讀取 Git 存放庫組態。
  • 公開 API 閘道的 URL 以對服務應用程式的要求進行負載平衡,並公開 管理員 伺服器的 URL 來管理應用程式。
  • 使用 Log Analytics 工作區分析記錄。
  • 使用 Application Insights 監視效能。

注意

本文使用簡化的 PetClinic 版本,其使用未準備好快速部署到 Azure Spring Apps 的記憶體內部資料庫。

已部署的應用程式 admin-server 會公開公用存取,這是風險點。 生產環境需要保護 Spring Boot 管理員 應用程式。

本文提供下列部署至 Azure Spring Apps 的選項:

  • [Azure 入口網站] 選項是建立資源和部署應用程式的最簡單且最快的方式,只需按兩下即可。 這個選項適用於想要將應用程式快速部署至 Azure 雲端服務的 Spring 開發人員。
  • Azure 入口網站 + Maven 外掛程式選項是建立資源和逐步部署應用程式的較傳統方式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
  • Azure CLI 選項會使用功能強大的命令行工具來管理 Azure 資源。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。
  • Azure 入口網站 + Maven 外掛程式選項是建立資源和逐步部署應用程式的較傳統方式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
  • Azure 開發人員 CLI 選項是一種更有效率的方式,可透過簡單的命令自動建立資源及部署應用程式。 Azure 開發人員 CLI 會使用範本來布建所需的 Azure 資源,以及部署應用程式程式代碼。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。

1.Prerequisites

2. 準備 Spring 專案

使用下列步驟在本機準備範例:

  1. 使用下列命令複製範例專案:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. 瀏覽至專案根目錄,然後使用下列命令在本機執行範例專案:

    bash ./scripts/run_all_without_infra.sh
    
  3. 腳本成功完成之後,請移至 http://localhost:8080 瀏覽器中以存取 PetClinic 應用程式。

3.準備雲端環境

本節說明如何建立 Azure Spring Apps 服務實例並準備 Azure 雲端環境。

3.1. 登入 Azure 入口網站

移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。

3.2. 建立 Azure Spring Apps 執行個體

使用下列步驟來建立服務實例:

  1. Azure 入口網站 的角落選取 [建立資源]。

  2. 在 [Azure 服務] 索引標籤上,選取 [計算>Azure Spring Apps]。

    顯示醒目提示 Azure Spring Apps 的 [建立資源] 頁面 Azure 入口網站 螢幕快照。

  3. 在 [建立 Azure Spring Apps] 頁面上,填寫 [基本] 索引卷標上的窗體。

    Azure 入口網站 的螢幕快照,其中顯示已選取 [基本] 索引標籤的 [建立 Azure Spring Apps] 頁面。

    使用下表作為完成表單的指南。 建議的方案是標準方案

    設定 建議的值 描述
    訂用帳戶 您的訂閱名稱。 您想要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
    資源群組 myresourcegroup 新的資源組名或您訂用帳戶的現有資源組名。
    名稱 myasa 識別 Azure Spring Apps 實例的唯一名稱。 名稱長度必須介於 4 到 32 個字元之間,而且只能包含小寫字母、數位和連字元。 服務名稱的第一個字元必須是字母,最後一個字元必須是字母或數位。
    計劃 標準 定價方案會決定與您的實例相關聯的資源和成本。
    區域 最接近用戶的區域。 最接近使用者的位置。
    區域備援 未選取 在 Azure 可用性區域中建立您的 Azure Spring Apps 服務。 所有區域目前不支援。
  4. 流覽至 [建立 Azure Spring Apps] 頁面上的 [診斷設定] 索引卷標,然後選取 [新建] 以建立新的 Log Analytics 工作區實例。 在 [建立新的 Log Analytics 工作區] 頁面上,視需要更新 Log Analytics 工作區的名稱,然後選取 [確定] 以確認建立。

    顯示 [建立 Azure Spring Apps] 頁面的 Azure 入口網站 螢幕快照,其中已選取 [診斷] 索引標籤,並醒目提示 [建立新] 按鈕。

  5. 流覽至 [建立 Azure Spring Apps] 頁面上的 [Application Insights] 索引卷標,然後選取 [新建] 以建立新的 Application Insights 實例。 在 [建立新的 Application Insights 資源] 頁面上,視需要更新 Application insights 名稱,選取 [以工作區為基礎的資源模式],然後選取 [確定] 以確認建立。

    顯示 [建立 Azure Spring Apps] 頁面 Azure 入口網站 的螢幕快照,其中顯示 [建立新的 Application Insights] 資源窗格。

  6. 選取 [ 檢閱] 和 [建立] 以檢閱您的選取專案。 然後,選取 [建立] 以布建 Azure Spring Apps 實例。

  7. 選取 [ 通知] 圖示(鈴鐺),以監視部署程式。 部署完成之後,您可以選取 [釘選到儀錶板],以在 Azure 入口網站 儀錶板上建立快捷方式至服務的 [概觀] 頁面。

    顯示資源的部署和 [通知] 窗格的 Azure 入口網站 螢幕快照,其中顯示 [移至資源] 和 [釘選到儀錶板] 按鈕。

  8. 選取 [移至資源 ] 以移至 [Azure Spring Apps 概觀 ] 頁面。

  9. 在瀏覽窗格中選取 [設定伺服器 ]。

  10. 在 [ 組態伺服器 ] 頁面上,針對 [URI],輸入 https://github.com/Azure-Samples/spring-petclinic-microservices-config.git ,然後選取 [ 驗證]。

    顯示 [設定伺服器] 頁面的 Azure 入口網站 螢幕快照,其中已醒目提示 [預設 URI] 和 [驗證] 按鈕。

  11. 驗證之後,選取 [ 套用 ] 以完成組態伺服器設定。

4.將應用程式部署至 Azure Spring Apps

您現在可以將應用程式部署至 Azure Spring Apps。

使用下列步驟,使用適用於 Azure Spring Apps 的 Maven 外掛程式來部署微服務應用程式

  1. 瀏覽至範例項目目錄,然後使用下列命令來設定 Azure Spring Apps 的應用程式:

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. 下列清單描述命令互動:

    • 選取要設定的子模組(輸入編號以逗號分隔,例如:[1-2,4,6],ENTER 以選取 ALL):按 Enter 鍵以選取全部。
    • OAuth2 登入:根據 OAuth2 通訊協定授權登入 Azure。
    • 選取訂用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter
    • 選取 [Azure Spring Apps 以進行部署:選取您所建立之 Azure Spring Apps 實例的清單編號。 如果您使用預設號碼,請直接按 Enter
    • 選取應用程式以公開公用存取:(輸入編號以逗號分隔,例如:[1-2,4,6],ENTER 以選取 NONE):輸入 1,5 for admin-serverapi-gateway
    • 確認儲存上述所有組態 (Y/n):按 y。 如果您按下 n,則組態不會儲存在 POM 檔案中。
  3. 使用下列命令來建置和部署每個應用程式:

    ./mvnw azure-spring-apps:deploy
    
  4. 針對 OAuth2 登入提示,根據 OAuth2 通訊協定授權登入 Azure。

    注意

    部署至 Azure Spring Apps 最多可能需要 25 分鐘的時間。

執行命令之後,記錄會顯示類似下列範例的輸出,指出所有部署都成功:

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. 準備 Spring 專案

下一節中的 [部署至 Azure] 按鈕會啟動 Azure 入口網站 體驗,從 GitHub 上的 ASA-Samples-Web-Application 版本頁面下載 JAR 套件。 不需要本機準備步驟。

3.準備雲端環境

您需要執行此範例的主要資源是 Azure Spring Apps 實例。 本節說明如何建立此資源。

本節使用 [部署至 Azure] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。

3.1. 登入 Azure 入口網站

移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。

3.2. 建立 Azure 資源

使用下列步驟來建立應用程式相依的所有 Azure 資源:

  1. 選取下列 [部署至 Azure] 按鈕,以在 Azure 入口網站 中啟動部署體驗:

    將 Resource Manager 範本部署至 Azure 的按鈕。

  2. 填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:

    設定 建議的值 描述
    訂用帳戶 您的訂閱名稱。 您想要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
    資源群組 myresourcegroup 新的資源組名或您訂用帳戶的現有資源組名。
    區域 最接近用戶的區域。 區域可用來建立資源群組。

    顯示 [自定義部署] 頁面之 Azure 入口網站 的螢幕快照。

  3. 選取 [ 檢閱] 和 [建立] 以檢閱您的選取專案。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。

  4. 在工具列上,選取 [通知 ] 圖示(鈴鐺),以監視部署程式。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,做為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 ] 頁面。

    顯示 [概觀] 頁面並開啟自定義部署通知窗格之 Azure 入口網站 螢幕快照。

4.將應用程式部署至 Azure Spring Apps

上一節中的 [部署至 Azure] 按鈕會啟動包含應用程式部署的 Azure 入口網站 體驗,因此不需要其他任何專案。

5.驗證應用程式

下列各節說明如何驗證部署。

5.1. 存取應用程式

部署完成之後,您可以從部署輸出找到 Spring Cloud Gateway URL,如下列螢幕快照所示:

顯示 [部署輸出] 頁面之 Azure 入口網站 的螢幕快照。

開啟閘道 URL。 應用程式看起來應該類似下列螢幕快照:

在 Azure Spring Apps 企業方案中執行的 PetClinic 應用程式螢幕快照。

5.2. 查詢應用程式記錄

瀏覽寵物診所的每個功能之後,Log Analytics 工作區會收集每個應用程式的記錄。 您可以使用自訂查詢來檢查記錄,如下列螢幕快照所示:

Azure 入口網站的螢幕快照,其中顯示 PetClinic 應用程式查詢的 [記錄] 頁面,以及企業方案的結果。

5.3. 監視應用程式

Application Insights 會監視應用程式相依性,如下列應用程式追蹤對應所示:

Azure 入口網站 的螢幕快照,其中顯示 Azure Spring Apps 企業版方案的 [應用程式對應] 頁面。

您可以從部署輸出找到應用程式即時檢視 URL。 開啟 [應用程式實時檢視 URL] 來監視應用程式執行時間,如下列螢幕快照所示:

PetClinic 應用程式的應用程式即時檢視螢幕快照。

5.1. 存取應用程式

使用部署記錄輸出中的網址資訊,開啟名為 api-gateway 的應用程式公開的網址, https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io例如 。 應用程式看起來應該類似下列螢幕快照:

在 Azure Spring Apps 上執行的 PetClinic 應用程式螢幕快照。

5.2. 查詢應用程式記錄

瀏覽寵物診所的每個功能之後,Log Analytics 工作區會收集每個應用程式的記錄。 您可以使用自訂查詢來檢查記錄,如下列螢幕快照所示:

Azure 入口網站 的螢幕快照,其中顯示 PetClinic 應用程式和結果上查詢的 [記錄] 頁面。

5.3. 監視應用程式

Application Insights 會監視應用程式相依性,如下列應用程式追蹤對應所示:

Azure 入口網站 的螢幕快照,其中顯示Application Insights 實例的[應用程式對應] 頁面。

開啟應用程式admin-server公開的 URL,以透過 Spring Boot 管理員 Server 管理應用程式,如下列螢幕快照所示:

列出目前應用程式實例之 PetClinic 應用程式的 Spring Boot 管理員 伺服器頁面螢幕快照。

6.清除資源

如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 當您不再需要資源時,可以清除不必要的資源,以避免 Azure 費用。

使用下列步驟來刪除整個資源群組,包括新建立的服務實例:

  1. 在 Azure 入口網站 中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。

  2. 在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。

當您不再需要資源時,請務必刪除您在本文中建立的資源。 您可以刪除 Azure 資源群組,其中包含資源群組中的所有資源。

使用下列步驟來移除整個資源群組:

  1. 在 Azure 入口網站 中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。

  2. 在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。

7. 後續步驟

如需詳細資訊,請參閱下列文章: