本文適用於:✅ 標準取用和專用 (預覽) ✅ 基本/標準 ✅ 企業
本文說明如何將 Spring Boot 事件驅動應用程式部署至 Azure Spring Apps。
範例專案是事件驅動應用程式,可訂閱名為 lower-case
的 服務匯流排 佇列,然後處理訊息,並將另一則訊息傳送至另一個名為的upper-case
佇列。 若要讓應用程式變得簡單,訊息處理只會將訊息轉換成大寫。 下圖描述此程式:
本文提供下列部署至 Azure Spring Apps 的選項:
- [Azure 入口網站] 選項是使用單鍵建立資源及部署應用程式的最簡單且最快的方式。 這個選項適用於想要將應用程式快速部署至 Azure 雲端服務的 Spring 開發人員。
-
Azure 入口網站 + Maven 外掛程式選項是建立資源並逐步部署應用程式的較傳統方式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
- Azure 開發人員 CLI 選項是一種更有效率的方式,可透過簡單的命令自動建立資源及部署應用程式。 Azure 開發人員 CLI 會使用範本來布建所需的 Azure 資源,以及部署應用程式程式代碼。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。
- [Azure 入口網站] 選項是使用單鍵建立資源及部署應用程式的最簡單且最快的方式。 這個選項適用於想要將應用程式快速部署至 Azure 雲端服務的 Spring 開發人員。
-
Azure 入口網站 + Maven 外掛程式選項是建立資源和逐步部署應用程式的較傳統方式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
-
Azure CLI 選項會使用功能強大的命令行工具來管理 Azure 資源。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。
1.Prerequisites
2. 準備 Spring 專案
使用下列步驟在本機準備範例:
範例專案已準備好在 GitHub 上。 使用下列命令複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用下列命令建置範例專案:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用下列步驟在本機準備範例。 這些步驟會使用 AZD,從 Azure 開發人員 CLI 範本初始化事件驅動應用程式。
開啟終端機,建立新的空白資料夾,然後流覽至該終端機。
使用下列命令來初始化專案:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
下列清單描述命令互動:
-
輸入新的環境名稱:提供環境名稱,以作為建立以保存所有 Azure 資源之資源群組的後綴。 此名稱應該在您的 Azure 訂用帳戶內是唯一的。
主控台會輸出類似下列範例的訊息:
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3.準備雲端環境
您需要執行此範例的主要資源是 Azure Spring Apps 實例、Azure 金鑰保存庫 和 Azure 服務匯流排 實例。 使用下列步驟來建立這些資源。
本節使用 [部署至 Azure] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
區域 |
最接近用戶的區域。 |
區域可用來建立資源群組。 |
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.1. 登入 Azure 入口網站
開啟網頁瀏覽器,然後移至 Azure 入口網站。 輸入您的認證來登入此入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 服務匯流排 實例
使用下列步驟建立 服務匯流排 實例:
選取 [Azure 入口網站] 角落的 [建立資源]。
在 [搜尋服務 和市集搜尋方塊中,搜尋服務總線。
在 [服務匯流排] 區段上,選取 [建立]。
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
命名空間名稱 |
my-srvbus |
識別 服務匯流排 服務的唯一名稱。 |
地點 |
最靠近使用者的位置。 |
最靠近您使用者的位置。 |
裝載選項和方案 |
基本 |
定價方案會決定與您的實例相關聯的資源和成本。 |
選取 [ 檢閱] 和 [建立] 以檢閱建立參數。 然後,選取 [建立] 以完成建立 服務匯流排 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
選取 [移至資源] 以移至 [服務匯流排 命名空間] 頁面。
選取 導覽功能表上的 [共用存取原則 ],然後選取 [RootManageSharedAccessKey]。
在 [SAS 原則:RootManageSharedAccessKey ] 頁面上,複製並儲存 主要連接字串 值,用來設定 Spring 應用程式的連線。
選取 導覽功能表上的 [佇列 ],然後選取 [ 佇列]。
在 [建立佇列] 頁面上,針對 [名稱] 輸入小寫,然後選取 [建立]。
使用 Name 大寫重複上一個步驟,以建立另一個佇列。
3.3. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立服務實例:
選取 入口網站角落的 [建立資源 ]。
選取 [計算>Azure Spring Apps]。
填寫標準耗用量和專用 (預覽) 表單,其中包含下列資訊:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂用帳戶名稱 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
名稱 |
myasa |
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。 |
計劃 |
標準耗用量和專用 (預覽) |
定價方案會決定與您的實例相關聯的資源和成本。 |
區域 |
最接近使用者的區域 |
最靠近您使用者的位置。 |
Container Apps 環境 |
myacaenv |
環境是一或多個容器應用程式之間的安全界限,可以彼此通訊,並共用虛擬網路、記錄和 Dapr 設定。 |
(選擇性)使用下列步驟建立 Container Apps 環境:
在 [基本] 索引標籤中填寫下列資訊:
-
環境名稱: myacaenv
-
方案: 耗用量
-
區域備援: 已停用
選取 [建立] 以建立容器應用程式環境。
在 [基本] 索引標籤中填寫下列資訊:
-
環境名稱: myacaenv
-
方案: (預覽) 取用和專用工作負載配置檔
-
區域備援: 已停用
選取 [ 工作負載配置檔 (預覽] 索引標籤,然後選取 [新增工作負載配置檔] 以新增工作負載配置檔 。
在 [ 新增工作負載配置檔 (預覽)] 頁面上,新增下列資訊:
-
工作負載配置檔名稱: my-wlp
-
工作負載配置檔大小:選取 [專用- D4]
-
自動調整實例計數範圍:選取 3 和 5
選取 [新增]。 此選取專案會帶您回到 [ 新增工作負載配置檔][預覽] 頁面。 選取 my-wlp,然後選取 [建立 ] 以建立容器應用程式環境。
選取 [檢閱並建立] 以檢閱您的選取項目。 選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 會開啟服務的 [ 概觀 ] 頁面。
選取 [移至資源 ] 以移至 [Azure Spring Apps 概觀 ] 頁面。
選取 左側導覽功能表中的 [應用程式 ],然後選取 [ 建立應用程式]。
在 [建立應用程式] 頁面上,輸入 simple-event-driven-app
[應用程式名稱],然後選取 [使用快速入門範例應用程式來建立應用程式]。
選取 [建立 ] 以完成建立 Azure Spring Apps 實例。
建立應用程式之後,選取您在上一個步驟中建立的應用程式名稱。
從瀏覽窗格中選取 [組態],然後在 [環境變數] 索引卷標上設定下列屬性。
-
SERVICE_BUS_CONNECTION_STRING:輸入 服務匯流排 主要 連接字串。
選取 [ 儲存 ] 以儲存連線屬性。
使用下列命令以 OAuth2 登入 Azure。 如果您已經登入,請忽略此步驟。
azd auth login
主控台會輸出類似下列範例的訊息:
Logged in to Azure.
使用下列命令將範本的基礎結構布建至 Azure:
azd provision
下列清單描述命令互動:
-
請選取要使用的 Azure 訂用帳戶:使用箭號移動、輸入篩選,然後按 Enter。
-
請選取要使用的 Azure 位置:使用箭號移動、輸入篩選,然後按 Enter。
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name>-<random-string>> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
此命令可能需要一些時間才能完成。 您會在布建 Azure 資源時看到進度指示器。
4.將應用程式部署至 Azure Spring Apps
上一節中的 [部署至 Azure] 按鈕會啟動包含應用程式部署的 Azure 入口網站 體驗,因此不需要其他任何專案。
使用下列步驟來部署使用適用於 Azure Spring Apps 的 Maven 外掛程式:
瀏覽至 完整的 目錄,然後執行下列命令以在 Azure Spring Apps 中設定應用程式:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
-
選取訂用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure 中使用現有的 Azure Spring Apps:按 y 以使用現有的 Azure Spring Apps 實例。
-
選取 [Azure Spring Apps 以進行部署:選取您所建立之 Azure Spring Apps 實例的清單編號。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure Spring Apps <中使用您的實例名稱>中的現有應用程式:按 y 以使用所建立的應用程式。
-
確認儲存上述所有組態:按 y。 如果您按下 n,則組態不會儲存在 POM 檔案中。
使用下列命令部署應用程式:
./mvnw azure-spring-apps:deploy
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
執行命令之後,您可以從下列記錄訊息中看到部署成功:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
使用下列步驟來使用 AZD 來封裝應用程式、布建 Web 應用程式所需的 Azure 資源,然後部署至 Azure Spring Apps。
使用下列命令封裝應用程式的可部署複本:
azd package
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was packaged for Azure in xx seconds.
使用下列命令,將應用程式程式代碼部署到那些新佈建的資源:
azd deploy
主控台會輸出類似下列範例的訊息:
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
2. 準備 Spring 專案
使用下列步驟在本機準備範例:
範例專案已準備好在 GitHub 上。 使用下列命令複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用下列命令建置範例專案:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用下列步驟在本機準備範例。 這些步驟會使用 AZD,從 Azure 開發人員 CLI 範本初始化事件驅動應用程式。
開啟終端機,建立新的空白資料夾,然後流覽至該終端機。
使用下列命令來初始化專案:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
下列清單描述命令互動:
-
輸入新的環境名稱:提供環境名稱,以作為建立以保存所有 Azure 資源之資源群組的後綴。 此名稱應該在您的 Azure 訂用帳戶內是唯一的。
主控台會輸出類似下列範例的訊息:
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3.準備雲端環境
您需要執行此範例的主要資源是 Azure Spring Apps 實例、Azure 金鑰保存庫 實例,以及 Azure 服務匯流排 實例。 使用下列步驟來建立這些資源。
本節使用 [部署至 Azure] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
區域 |
最接近用戶的區域。 |
區域可用來建立資源群組。 |
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.1. 登入 Azure 入口網站
開啟網頁瀏覽器,然後移至 Azure 入口網站。 輸入您的認證來登入此入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 服務匯流排 實例
使用下列步驟建立 服務匯流排 實例:
選取 [在 Azure 入口網站 的角落建立資源。
在 [搜尋服務 和市集搜尋方塊中,搜尋服務總線。
在 [服務匯流排] 區段上,選取 [建立]。
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
命名空間名稱 |
my-srvbus |
識別 服務匯流排 服務的唯一名稱。 |
地點 |
最靠近使用者的位置。 |
最靠近您使用者的位置。 |
裝載選項和方案 |
基本 |
定價方案會決定與您的實例相關聯的資源和成本。 |
選取 [ 檢閱] 和 [建立] 以檢閱建立參數。 然後,選取 [建立] 以完成建立 服務匯流排 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
選取 [移至資源] 以移至 [服務匯流排 命名空間] 頁面。
選取 導覽功能表上的 [共用存取原則 ],然後選取 [RootManageSharedAccessKey]。
在 [SAS 原則:RootManageSharedAccessKey ] 頁面上,複製並儲存 主要連接字串 值,用來設定 Spring 應用程式的連線。
選取 導覽功能表上的 [佇列 ],然後選取 [ 佇列]。
在 [建立佇列] 頁面上,針對 [名稱] 輸入小寫,然後選取 [建立]。
使用 Name 大寫重複上一個步驟,以建立另一個佇列。
3.3. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立 Azure Spring Apps 實例:
選取 Azure 入口網站 角落的 [建立資源]。
選取 [計算>Azure Spring Apps]。
在 [基本資料] 表單中填寫下列資訊:
使用下表作為完成表單的指南。 建議的方案是標準方案。
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂用帳戶名稱 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
名稱 |
myasa |
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。 |
計劃 |
標準 |
方案會決定與您的實例相關聯的資源和成本。 |
區域 |
最接近使用者的區域 |
最靠近您使用者的位置。 |
區域備援 |
未選取 |
是否要在 Azure 可用性區域中建立 Azure Spring Apps 服務,目前只能支援數個區域。 |
選取 [檢閱並建立] 以檢閱您的選取項目。 選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 會開啟服務的 [ 概觀 ] 頁面。
3.4. 將應用程式實例連線至 服務匯流排 實例
在 Azure 入口網站中,移至您的 Azure Spring Apps 執行個體。
在導覽功能表中選取 [應用程式 ],然後選取 [ 建立應用程式]。
在 [建立應用程式] 頁面上,針對 [應用程式名稱] 輸入 simple-event-driven-app,然後選取 [Java 17 for Runtime 平臺]。
建立應用程式之後,選取您在上一個步驟中建立的應用程式名稱。
在 [組態] 頁面上,選取 [環境變數] 索引卷標,輸入 [密鑰] SERVICE_BUS_CONNECTION_STRING,貼上 [值] 服務匯流排 連接字串,然後選取 [儲存]。
使用下列命令以 OAuth2 登入 Azure。 如果您已經登入,請忽略此步驟。
azd auth login
主控台會輸出類似下列範例的訊息:
Logged in to Azure.
使用下列命令,使用 標準 方案來設定範本:
azd env set PLAN standard
使用下列命令封裝應用程式的可部署複本、將範本的基礎結構布建至 Azure,以及將應用程式程式代碼部署到那些新佈建的資源:
azd provision
下列清單描述命令互動:
-
選取要使用的 Azure 訂用帳戶:使用箭號移動、輸入篩選,然後按 Enter。
-
選取要使用的 Azure 位置:使用箭號移動、輸入篩選,然後按 Enter。
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
此命令可能需要一些時間才能完成。 布建 Azure 資源時,您會看到進度指示器。
4.將應用程式部署至 Azure Spring Apps
上一節中的 [部署至 Azure] 按鈕會啟動包含應用程式部署的 Azure 入口網站 體驗,因此不需要其他任何專案。
使用下列步驟來部署使用適用於 Azure Spring Apps 的 Maven 外掛程式:
瀏覽至 完整的 目錄,然後執行下列命令以在 Azure Spring Apps 中設定應用程式:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
-
選取訂用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure 中使用現有的 Azure Spring Apps:按 y 以使用現有的 Azure Spring Apps 實例。
-
選取 [Azure Spring Apps 以進行部署:選取您所建立之 Azure Spring Apps 實例的清單編號。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure Spring Apps <中使用您的實例名稱>中的現有應用程式:按 y 以使用所建立的應用程式。
-
確認儲存上述所有組態:按 y。 如果您按下 n,則組態不會儲存在 POM 檔案中。
使用下列命令部署應用程式:
./mvnw azure-spring-apps:deploy
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
執行命令之後,您可以從下列記錄訊息中看到部署成功:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
使用下列步驟來使用 AZD 來封裝應用程式、布建 Web 應用程式所需的 Azure 資源,然後部署至 Azure Spring Apps。
使用下列命令封裝應用程式的可部署複本:
azd package
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was packaged for Azure in xx seconds.
使用下列命令,將應用程式程式代碼部署到那些新佈建的資源:
azd deploy
主控台會輸出類似下列範例的訊息:
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
2. 準備 Spring 專案
使用下列步驟在本機準備範例:
範例專案已準備好在 GitHub 上。 使用下列命令複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用下列命令建置範例專案:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用下列步驟在本機準備範例:
範例專案已準備好在 GitHub 上。 使用下列命令複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用下列命令建置範例專案:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
3.準備雲端環境
您需要執行此範例的主要資源是 Azure Spring Apps 實例和 Azure 服務匯流排 實例。 下列各節說明如何建立這些資源。
本節使用 [部署至 Azure] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
區域 |
最接近用戶的區域。 |
區域可用來建立資源群組。 |
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 服務匯流排 實例
使用下列步驟建立 服務匯流排 實例:
在 Azure 入口網站 的角落選取 [建立資源]。
在 [搜尋服務 和市集搜尋方塊中,搜尋服務總線。
在 [服務匯流排] 區段上,選取 [建立]。
填寫 [基本] 索引卷標上的窗體。使用下表做為完成窗體的指南:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
命名空間名稱 |
my-srvbus |
識別 服務匯流排 服務的唯一名稱。 |
地點 |
最靠近使用者的位置。 |
最靠近您使用者的位置。 |
裝載選項和方案 |
基本 |
定價方案會決定與您的實例相關聯的資源和成本。 |
選取 [ 檢閱] 和 [建立] 以檢閱建立參數。 然後,選取 [建立] 以完成建立 服務匯流排 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
選取 [移至資源] 以移至 [服務匯流排 命名空間] 頁面。
選取 導覽功能表上的 [佇列 ],然後選取 [ 佇列]。
在 [建立佇列] 頁面上,針對 [名稱] 輸入小寫,然後選取 [建立]。
使用 Name 大寫重複上一個步驟,以建立另一個佇列。
3.3. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立服務實例:
選取 [Azure 入口網站] 角落的 [建立資源]。
選取 [計算>Azure Spring Apps]。
在 [基本資料] 表單中填寫下列資訊:
設定 |
建議的值 |
描述 |
訂用帳戶 |
您的訂閱名稱。 |
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。 |
資源群組 |
myresourcegroup |
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。 |
名稱 |
myasa |
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。 |
區域 |
最接近用戶的區域。 |
最靠近您使用者的位置。 |
裝載選項和方案 |
企業 |
決定與實例相關聯的資源和成本的定價方案。 |
區域備援 |
未選取 |
在 Azure 可用性區域中建立 Azure Spring Apps 服務的選項。 所有區域目前不支援此功能。 |
軟體IP方案 |
隨用隨付 |
可讓您隨用 Azure Spring Apps 隨用隨付的定價方案。 |
部署範例專案 |
未選取 |
使用內建範例應用程式的選項。 |
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。
選取 [移至資源 ] 以移至 [Azure Spring Apps 概觀 ] 頁面。
3.4. 將應用程式實例連線到 服務匯流排 實例
使用下列步驟來連線服務實例:
在 Azure 入口網站中,移至您的 Azure Spring Apps 執行個體。
從瀏覽窗格中,開啟 [ 應用程式 ] 窗格,然後選取 [ 建立應用程式]。
在 [ 建立應用程式] 頁面上,針對應用程式名稱,使用 simple-event-driven-app ,並將所有其他字段保留其預設值。
選取 [建立 ] 以完成建立應用程式,然後選取應用程式以檢視詳細數據。
從瀏覽窗格中選取 [服務連接器 ],然後選取 [ 建立 ] 以建立新的服務連線。
在 [基本] 索引標籤中填寫下列資訊:
-
服務類型:選取 [服務匯流排]。
-
線上名稱:填入可修改的自動產生名稱。
-
訂用帳戶︰選取您的訂用帳戶。
-
命名空間:選取您建立的命名空間。
-
用戶端類型:選取 [ SpringBoot]。
使用下列資訊設定 [ 下一步:驗證 ] 索引標籤:
注意
Microsoft 建議您使用最安全的可用驗證流程。 此程式中所述的驗證流程,例如資料庫、快取、傳訊或 AI 服務,在應用程式中需要高度的信任,而且不會在其他流程中帶來風險。 只有在更安全的選項,例如無密碼或無密鑰連線的受控識別時,才能使用此流程。 針對本機計算機作業,偏好使用無密碼或無密鑰連線的使用者身分識別。
-
選取您想要在計算服務和目標服務之間使用的驗證類型。:選取 [連接字元串]。
選取 [下一步:網路]。 使用預設選項 [設定防火牆規則] 來啟用目標服務的存取。
選取 [下一步:檢閱和建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以建立連線。
3.1. 提供每個資源的名稱
使用下列命令建立變數來保存資源名稱。 請務必將預留位置取代為您自己的值。
export RESOURCE_GROUP=<event-driven-app-resource-group-name>
export LOCATION=<desired-region>
export SERVICE_BUS_NAME_SPACE=<event-driven-app-service-bus-namespace>
export AZURE_SPRING_APPS_INSTANCE=<Azure-Spring-Apps-instance-name>
export APP_NAME=<event-driven-app-name>
3.2. 建立新的資源群組
使用下列步驟來建立新的資源群組:
使用下列命令登入 Azure CLI:
az login
使用下列命令來設定預設位置:
az configure --defaults location=${LOCATION}
使用下列命令來列出所有可用的訂用帳戶,以判斷要使用的訂用帳戶識別碼:
az account list --output table
使用下列命令來設定預設訂用帳戶:
az account set --subscription <subscription-ID>
請使用下列命令來建立資源群組:
az group create --resource-group ${RESOURCE_GROUP}
使用下列命令,將新建立的資源群組設定為預設資源群組:
az configure --defaults group=${RESOURCE_GROUP}
3.3. 安裝擴充功能和註冊命名空間
使用下列命令來安裝 Azure CLI 的 Azure Spring Apps 擴充功能,並註冊 Microsoft.SaaS
命名空間:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
3.4. 建立 Azure Spring Apps 執行個體
使用下列命令來建立 Azure Spring Apps 實例:
az spring create \
--name ${AZURE_SPRING_APPS_INSTANCE} \
--sku Enterprise
然後,使用下列命令在 Azure Spring Apps 實例中建立應用程式:
az spring app create \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME}
3.5. 建立 服務匯流排 實例
使用下列步驟來建立 服務匯流排 實例:
使用下列命令建立 服務匯流排 命名空間:
az servicebus namespace create --name ${SERVICE_BUS_NAME_SPACE}
使用下列命令來建立名為 和 upper-case
的兩個lower-case
佇列:
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name lower-case
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name upper-case
3.6. 將應用程式實例連線到 服務匯流排 實例
您現在已在 Azure Spring Apps 中建立 服務匯流排 和應用程式,但應用程式無法連線到 服務匯流排。 使用下列步驟可讓應用程式連線到 服務匯流排,然後部署應用程式:
使用下列命令取得 服務匯流排 連接字串:
注意
Microsoft 建議您使用最安全的可用驗證流程。 此程式中所述的驗證流程,例如資料庫、快取、傳訊或 AI 服務,在應用程式中需要高度的信任,而且不會在其他流程中帶來風險。 只有在更安全的選項,例如無密碼或無密鑰連線的受控識別時,才能使用此流程。 針對本機計算機作業,偏好使用無密碼或無密鑰連線的使用者身分識別。
export SERVICE_BUS_CONNECTION_STRING=$( \
az servicebus namespace authorization-rule keys list \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name RootManageSharedAccessKey \
--query primaryConnectionString \
--output tsv)
使用下列命令,透過環境變數將 連接字串 提供給應用程式:
az spring app update \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--env SPRING_CLOUD_AZURE_SERVICEBUS_CONNECTIONSTRING=${SERVICE_BUS_CONNECTION_STRING} \
SPRING_CLOUD_AZURE_KEYVAULT_SECRET_PROPERTYSOURCEENABLED=false
4.將應用程式部署至 Azure Spring Apps
上一節中的 [部署至 Azure] 按鈕會啟動包含應用程式部署的 Azure 入口網站 體驗,因此不需要其他任何專案。
使用下列步驟來部署使用適用於 Azure Spring Apps 的 Maven 外掛程式:
瀏覽至 完整的 目錄,然後執行下列命令以在 Azure Spring Apps 中設定應用程式:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
-
選取訂用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure 中使用現有的 Azure Spring Apps:按 y 以使用現有的 Azure Spring Apps 實例。
-
選取 [Azure Spring Apps 以進行部署:選取您所建立之 Azure Spring Apps 實例的清單編號。 如果您使用預設號碼,請直接按 Enter 。
-
在 Azure Spring Apps <中使用您的實例名稱>中的現有應用程式:按 y 以使用所建立的應用程式。
-
確認儲存上述所有組態:按 y。 如果您按下 n,則組態不會儲存在 POM 檔案中。
使用下列命令部署應用程式:
./mvnw azure-spring-apps:deploy
下列清單描述命令互動:
-
OAuth2 登入:您必須根據 OAuth2 通訊協定授權登入 Azure。
執行命令之後,您可以從下列記錄訊息中看到部署成功:
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
雲端環境現已就緒。 使用下列命令部署應用程式:
az spring app deploy \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--artifact-path target/simple-event-driven-app-0.0.2-SNAPSHOT.jar
5.驗證應用程式
使用下列步驟來確認事件驅動應用程式正常運作。 您可以將訊息傳送至 lower-case
佇列來驗證應用程式,然後確認佇列中有 upper-case
訊息。
6.清除資源
當您不再需要資源時,請務必刪除您在本文中建立的資源。 您可以刪除 Azure 資源群組,其中包括資源群組中的所有資源。
使用下列步驟來刪除整個資源群組 (包括新建立的服務):
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。
使用下列步驟來刪除整個資源群組 (包括新建立的服務):
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。
使用下列命令來刪除整個資源群組,包括新建立的服務:
az group delete --name ${RESOURCE_GROUP}
使用下列步驟來刪除整個資源群組 (包括新建立的服務):
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。
使用下列步驟來刪除整個資源群組 (包括新建立的服務):
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除]。
使用下列命令來移除此範例應用程式中使用的所有 Azure 資源:
azd down
下列清單描述命令互動:
-
要刪除的資源總數: <your-resources-total>,您確定要繼續嗎?:按 y。
-
您要改為永久刪除這些資源,允許重複使用其名稱嗎?:按 y 鍵。 如果您想要重複使用 金鑰保存庫,請按 n。
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
7. 後續步驟
如需詳細資訊,請參閱下列文章: