快速入門:將第一個 Web 應用程式部署至 Azure Spring Apps
本文內容
本快速入門說明如何將 Spring Boot Web 應用程式部署至 Azure Spring Apps。 範例專案是一個簡單的 ToDo 應用程式,可新增工作、在工作完成時標記,然後刪除工作。 下列螢幕快照顯示應用程式:
此應用程式是具有下列層的典型三層 Web 應用程式:
前端系結 React 應用程式。
使用 Spring Data JPA 來存取關係資料庫的後端 Spring Web 應用程式。
關係資料庫。 針對localhost,應用程式會使用 H2 資料庫引擎 。 針對 Azure Spring Apps,應用程式會使用 適用於 PostgreSQL 的 Azure 資料庫。 如需 適用於 PostgreSQL 的 Azure 資料庫 的詳細資訊,請參閱彈性伺服器檔 。
下圖顯示系統的架構:
本文提供下列部署至 Azure Spring Apps 的選項:
[Azure 入口網站] 選項是建立資源和部署應用程式的最簡單且最快的方式,只需按兩下即可。 這個選項適用於想要將應用程式快速部署至 Azure 雲端服務的 Spring 開發人員。
Azure 入口網站 + Maven 外掛程式 選項提供更傳統的方法來建立資源和逐步部署應用程式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
Azure 開發人員 CLI 選項是一種更有效率的方式,可透過簡單的命令自動建立資源及部署應用程式。 Azure 開發人員 CLI 會使用範本來布建所需的 Azure 資源,以及部署應用程式程式代碼。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。
本文提供下列部署至 Azure Spring Apps 的選項:
Azure 入口網站 選項是建立資源和部署應用程式的最簡單且最快的方式,只需按下即可。 這個選項適用於想要將應用程式快速部署至 Azure 雲端服務的 Spring 開發人員。
Azure 入口網站 + Maven 外掛程式 選項提供更傳統的方法來建立資源和逐步部署應用程式。 此選項適用於第一次使用 Azure 雲端服務的 Spring 開發人員。
Azure CLI 選項會使用功能強大的命令行工具來管理 Azure 資源。 此選項適用於熟悉 Azure 雲端服務的 Spring 開發人員。
1.Prerequisites
Azure 訂用帳戶。 如果您沒有訂用帳戶,請先建立免費帳戶 ,再開始操作。
Azure 訂用帳戶。 如果您沒有訂用帳戶,請先建立免費帳戶 ,再開始操作。
2. 準備 Spring 專案
雖然您在後續步驟中使用 Azure 入口網站,但您必須使用Bash命令行在本機準備專案。 使用下列步驟在本機複製並執行應用程式:
使用下列命令從 GitHub 複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Web-Application.git
使用下列命令以 Maven 建置範例專案:
cd ASA-Samples-Web-Application
./mvnw clean package
使用下列命令來執行範例應用程式:
java -jar web/target/simple-todo-web.jar
在瀏覽器中移至 http://localhost:8080
以存取應用程式。
使用下列步驟在本機複製並執行應用程式:
使用下列命令從 GitHub 複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Web-Application.git
使用下列命令以 Maven 建置範例專案:
cd ASA-Samples-Web-Application
./mvnw clean package
使用下列命令來執行範例應用程式:
java -jar web/target/simple-todo-web.jar
在瀏覽器中移至 http://localhost:8080
以存取應用程式。
3.準備雲端環境
執行此範例所需的主要資源是 Azure Spring Apps 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例。 本節提供建立這些資源的步驟。
本節使用 [部署至 Azure ] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure ] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的 窗體。使用下表做為完成窗體的指南:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
區域
最接近用戶的區域。
區域可用來建立資源群組。
Postgre SQL 管理員密碼
N/A
PostgreSQL 伺服器管理員的密碼。
Postgre SQL 用戶密碼
N/A
PostgreSQL 應用程式使用者的密碼,用於應用程式。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板 ],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,作為服務的 [概觀] 頁面的 快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,輸入您的認證,然後登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立服務實例:
在 Azure 入口網站 的角落選取 [建立資源 ]。
選取 [計算 >Azure Spring Apps]。
在 [基本資料] 表單中填寫下列資訊:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
名稱
myasa
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。
計劃
企業
決定與實例相關聯的資源和成本的定價方案。
區域
最接近用戶的區域。
最靠近您使用者的位置。
區域備援
未選取
在 Azure 可用性區域中建立 Azure Spring Apps 服務的選項。 所有區域目前不支援此功能。
軟體IP方案
隨用隨付
使用 Azure Spring Apps 隨用隨付。
條款
Selected
與 Marketplace 供應項目相關聯的 合約複選框。 您必須選取此複選框。
部署範例專案
未選取
使用內建範例應用程式的選項。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板 ],這會在 Azure 入口網站 儀錶板上建立此服務的圖格,做為服務的 [概觀] 頁面的 快捷方式。
選取 [移至資源 ] 以移至 [Azure Spring Apps 概觀 ] 頁面。
3.3. 準備 PostgreSQL 實例
使用下列步驟建立 適用於 PostgreSQL 的 Azure 資料庫 伺服器:
在 Azure 入口網站中,選取 [建立資源] 。
選取 [資料庫 > 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器]。
在 [基本] 索引標籤中填寫下列資訊:
伺服器名稱 : my-demo-pgsql
區域 : 美國東部
PostgreSQL 版本 : 14
工作負載類型 : 開發
啟用高可用性 :未選取
驗證方法 : 僅 PostgreSQL 驗證
管理員用戶名稱 : myadmin
密碼 和 確認密碼 :輸入密碼。
使用下列資訊設定 [ 網络] 索引 標籤:
線上方法 : 公用存取(允許的IP 位址)
允許從 Azure 內的任何 Azure 服務公開存取此伺服器 :選取
選取 [ 檢閱 + 建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以布建伺服器。 這項作業可能需要幾分鐘的時間。
前往您 Azure 入口網站上的 [PostgreSQL 伺服器]。
從導覽功能表中選取 [資料庫 ] 以建立資料庫 ,例如 Todo 。
3.4. 將應用程式實例連線至 PostgreSQL 實例
使用下列步驟來連線服務實例:
在 Azure 入口網站中,移至您的 Azure Spring Apps 執行個體。
從瀏覽窗格中,開啟 [應用程式 ],然後選取 [ 建立應用程式 ]。
在 [ 建立應用程式] 頁面上,針對應用程式名稱,使用 simple-todo-web ,並將所有其他字段保留其預設值。
選取 [建立 ] 以完成建立應用程式,然後選取應用程式以檢視詳細數據。
從瀏覽窗格中選取 [服務連接器 ],然後選取 [ 建立 ] 以建立新的服務連線。
在 [基本] 索引標籤中填寫下列資訊:
服務類型 : 適用於 PostgreSQL 的 DB 彈性伺服器
線上名稱 :填入可修改的自動產生名稱。
訂用帳戶 ︰選取您的訂用帳戶。
PostgreSQL 彈性伺服器 : my-demo-pgsql
PostgreSQL 資料庫 :選取您建立的資料庫。
用戶端類型 : SpringBoot
使用下列資訊設定 [ 下一步:驗證 ] 索引標籤:
選取您想要在計算服務和目標服務之間使用的驗證類型。 :選取 [連接字元串 ]。
繼續... :選取 資料庫認證
用戶名稱 : myadmin
密碼 :輸入您的密碼。
選取 [下一步:網路] 。 使用預設選項 [設定防火牆規則] 來啟用目標服務的存取。
選取 [下一步:檢閱和建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以建立連線。
3.1. 提供每個資源的名稱
使用下列命令建立變數來保存資源名稱。 請務必將預留位置取代為您自己的值。
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>
export POSTGRESQL_SERVER=<server-name>
export POSTGRESQL_DB=<database-name>
export POSTGRESQL_ADMIN_USERNAME=<admin-username>
export POSTGRESQL_ADMIN_PASSWORD=<admin-password>
export AZURE_SPRING_APPS_NAME=<Azure-Spring-Apps-service-instance-name>
export APP_NAME=<web-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 Spring Apps 執行個體
Azure Spring Apps 可用來裝載 Spring Web 應用程式。 建立 Azure Spring Apps 實例及其內部的應用程式。
使用下列命令來建立 Azure Spring Apps 服務實例。
az spring create --name ${AZURE_SPRING_APPS_NAME} --sku enterprise
使用下列命令在 Azure Spring Apps 實例中建立應用程式。
az spring app create \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${APP_NAME} \
--assign-endpoint true
3.4. 準備 PostgreSQL 實例
Spring Web 應用程式會針對localhost中的資料庫使用 H2,並針對 Azure 中的資料庫使用 適用於 PostgreSQL 的 Azure 資料庫。
使用下列命令來建立 PostgreSQL 實例:
az postgres flexible-server create \
--name ${POSTGRESQL_SERVER} \
--database-name ${POSTGRESQL_DB} \
--admin-user ${POSTGRESQL_ADMIN_USERNAME} \
--admin-password ${POSTGRESQL_ADMIN_PASSWORD} \
--public-access 0.0.0.0
0.0.0.0
指定 可讓從 Azure 內部署的任何資源進行公用存取,以存取您的伺服器。
3.5. 將應用程式實例連線至 PostgreSQL 實例
建立應用程式實例和 PostgreSQL 實例之後,應用程式實例就無法直接存取 PostgreSQL 實例。 使用下列步驟可讓應用程式連線到 PostgreSQL 實例。
使用下列指令取得 PostgreSQL 實體的完整網域名稱:
export PSQL_FQDN=$(az postgres flexible-server show \
--name ${POSTGRESQL_SERVER} \
--query fullyQualifiedDomainName \
--output tsv)
使用下列命令,透過環境變數將屬性提供給 spring.datasource.
應用程式:
az spring app update \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${APP_NAME} \
--env SPRING_DATASOURCE_URL="jdbc:postgresql://${PSQL_FQDN}:5432/${POSTGRESQL_DB}?sslmode=require" \
SPRING_DATASOURCE_USERNAME="${POSTGRESQL_ADMIN_USERNAME}" \
SPRING_DATASOURCE_PASSWORD="${POSTGRESQL_ADMIN_PASSWORD}"
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
下列清單描述命令互動:
選取要設定 的子模組:選取要設定的 模組,然後輸入 SimpleTodo Web 模組的數目。
OAuth2 登入 :您必須根據 OAuth2 通訊協定授權登入 Azure。
選取訂 用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter 。
在 Azure 中使用現有的 Azure Spring Apps:按 y 以使用現有的 Azure Spring Apps 實例。
選取 [Azure Spring Apps 以進行部署 :選取您所建立的 Azure Spring Apps 實例數目。 如果您使用預設號碼,請直接按 Enter 。
公開此應用程式的 公用存取:按 y 。
確認儲存上述所有組態 :按 y 。 如果您按下 n ,則組態不會儲存在 POM 檔案中。
使用下列命令來部署應用程式:
./mvnw azure-spring-apps:deploy
下列清單描述命令互動:
OAuth2 登入 :您必須根據 OAuth2 通訊協定授權登入 Azure。
執行命令之後,您可以從下列記錄訊息中看到部署成功:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-web-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-web)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-web.azuremicroservices.io
輸出 應用程式 URL 是存取 todo
應用程式的端點。
現在已備妥雲端環境,應用程式即可部署。 使用下列命令來部署應用程式:
az spring app deploy \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${APP_NAME} \
--artifact-path web/target/simple-todo-web.jar
2. 準備 Spring 專案
雖然您在後續步驟中使用 Azure 入口網站,但您必須使用Bash命令行在本機準備專案。 使用下列步驟在本機複製並執行應用程式:
使用下列命令從 GitHub 複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Web-Application.git
使用下列命令以 Maven 建置範例專案:
cd ASA-Samples-Web-Application
./mvnw clean package
使用下列命令來執行範例應用程式:
java -jar web/target/simple-todo-web.jar
在瀏覽器中移至 http://localhost:8080
以存取應用程式。
使用下列步驟,從 Azure 開發人員 CLI 樣本初始化 Web 應用程式:
開啟終端機、建立空白資料夾,然後將目錄變更為它。
使用下列命令來初始化專案:
azd init --template https://github.com/Azure-Samples/ASA-Samples-Web-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 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例。 本節提供建立這些資源的步驟。
本節使用 [部署至 Azure ] 按鈕,在 Azure 入口網站 中啟動部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure ] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的 窗體。使用下表做為完成窗體的指南:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
區域
最接近用戶的區域。
區域可用來建立資源群組。
PostgreSQL 系統管理員密碼
N/A
PostgreSQL 伺服器管理員的密碼。
PostgreSQL 用戶密碼
N/A
PostgreSQL 應用程式使用者的密碼,用於應用程式。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板 上建立此服務的圖格,作為服務的 [概觀] 頁面的快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
使用下列步驟來建立 Azure Spring Apps 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例:
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,輸入您的認證,然後登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立服務實例:
選取 入口網站角落的 [建立資源 ]。
選取 [計算 >Azure Spring Apps]。
填寫 [基本] 索引卷標上的 窗體。使用下表做為完成窗體的指南:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
名稱
myasa
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。
計劃
標準耗用量和專用 (預覽)
定價方案會決定與您的實例相關聯的資源和成本。
區域
最接近用戶的區域。
最靠近您使用者的位置。
Container Apps 環境
myacaenv
環境是一或多個容器應用程式之間的安全界限,可以彼此通訊,並共用虛擬網路、記錄和 Dapr 設定。
(選擇性) 使用下列資訊填寫 [基本] 索引 標籤,以建立 Container Apps 環境:
環境名稱 : myacaenv
方案 : 耗用量
區域備援 : 已停用
然後,選取 [建立 ] 以建立容器應用程式環境。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成之後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板 上建立此服務的圖格,作為服務的 [概觀] 頁面的 快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.3. 準備 PostgreSQL 實例
使用下列步驟建立 適用於 PostgreSQL 的 Azure 資料庫 伺服器:
在 Azure 入口網站中,選取 [建立資源] 。
選取 [資料庫 > 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器]。
在 [基本] 索引標籤中填寫下列資訊:
伺服器名稱 : my-demo-pgsql
區域 : 美國東部
PostgreSQL 版本 : 14
工作負載類型 : 開發
啟用高可用性 :未選取
驗證方法 : 僅 PostgreSQL 驗證
管理員用戶名稱 : myadmin
密碼 和 確認密碼 :輸入密碼。
使用下列資訊設定 [ 網络] 索引 標籤:
線上方法 : 公用存取(允許的IP 位址)
允許從 Azure 內的任何 Azure 服務公開存取此伺服器 :選取
選取 [ 檢閱 + 建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以布建伺服器。 這項作業可能需要幾分鐘的時間。
前往您 Azure 入口網站上的 [PostgreSQL 伺服器]。
從導覽功能表中選取 [資料庫 ] 以建立資料庫 ,例如 Todo 。
3.4. 將應用程式實例連線至 PostgreSQL 實例
使用下列步驟來連線服務實例:
在 Azure 入口網站中,移至您的 Azure Spring Apps 執行個體。
從瀏覽窗格中,開啟 [應用程式 ],然後選取 [ 建立應用程式 ]。
在 [ 建立應用程式] 頁面上,針對應用程式名稱,使用 simple-todo-web ,然後選取 [ 使用快速入門範例應用程式 ] 來建立應用程式。
選取 [建立 ] 以完成建立應用程式,然後選取應用程式以檢視其詳細數據。
從瀏覽窗格中選取 [組態 ],然後在 [環境變數] 索引標籤上 設定下列屬性:
SPRING_DATASOURCE_URL: jdbc:postgresql://my-demo-pgsql.postgres.database.azure.com:5432/todo?sslmode=require
SPRING_DATASOURCE_USERNAME : myadmin
SPRING_DATASOURCE_PASSWORD:輸入您的密碼。
選取 [ 儲存 ] 以儲存連線屬性。
使用下列步驟來建立 Azure Spring Apps 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例:
使用下列命令以 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> 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
下列清單描述命令互動:
選取要設定 的子模組:選取要設定的 模組,然後輸入 SimpleTodo Web 模組的數目。
OAuth2 登入 :您必須根據 OAuth2 通訊協定授權登入 Azure。
選取訂 用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 Enter 。
在 Azure 中使用現有的 Azure Spring Apps:按 y 以使用現有的 Azure Spring Apps 實例。
選取 [Azure Spring Apps 以進行部署 :選取您所建立的 Azure Spring Apps 實例數目。 如果您使用預設號碼,請直接按 Enter 。
公開此應用程式的 公用存取:按 y 。
確認儲存上述所有組態 :按 y 。 如果您按下 n ,則組態不會儲存在 POM 檔案中。
使用下列命令來部署應用程式:
./mvnw azure-spring-apps:deploy
下列清單描述命令互動:
OAuth2 登入 :您必須根據 OAuth2 通訊協定授權登入 Azure。
執行命令之後,您可以從下列記錄訊息中看到部署成功:
[INFO] Start updating app(simple-todo-web)...
[INFO] App(simple-todo-web) is successfully updated.
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-web--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(simple-todo-web)...
[INFO] Application url: https://simple-todo-web.<unique-identifier>.<region-name>.azurecontainerapps.io
輸出 應用程式 URL 是存取 todo
應用程式的端點。
您現在可以將應用程式部署至 Azure Spring Apps。 使用下列步驟來封裝應用程式、布建 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-todo-web
- Endpoint: https://simple-todo-web.xxx.<your-azure-location>.azurecontainerapps.io
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
輸出 端點 是存取 todo
應用程式的端點。
2. 準備 Spring 專案
雖然您在後續步驟中使用 Azure 入口網站,但您必須使用Bash命令行在本機準備專案。 使用下列步驟在本機複製並執行應用程式:
使用下列命令從 GitHub 複製範例專案:
git clone https://github.com/Azure-Samples/ASA-Samples-Web-Application.git
使用下列命令以 Maven 建置範例專案:
cd ASA-Samples-Web-Application
./mvnw clean package
使用下列命令來執行範例應用程式:
java -jar web/target/simple-todo-web.jar
在瀏覽器中移至 http://localhost:8080
以存取應用程式。
使用下列步驟,從 Azure 開發人員 CLI 樣本初始化 Web 應用程式:
開啟終端機、建立空白資料夾,然後將目錄變更為它。
使用下列命令來初始化專案:
azd init --template https://github.com/Azure-Samples/ASA-Samples-Web-Application
下列清單描述命令互動:
輸入新的環境名稱:提供環境名稱 ,以作為建立以保存所有 Azure 資源之資源群組的後綴。 此名稱應該在您的 Azure 訂用帳戶內是唯一的。
主控台會輸出類似下列範例的訊息:
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Please 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 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例。 本節提供建立這些資源的步驟。
本節使用 [部署至 Azure ] 按鈕來啟動 Azure 入口網站 中的部署體驗。 此體驗會使用 ARM範本 來建立 Azure 資源。
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure 資源
使用下列步驟來建立應用程式相依的所有 Azure 資源:
選取下列 [部署至 Azure ] 按鈕,以在 Azure 入口網站 中啟動部署體驗:
填寫 [基本] 索引卷標上的 窗體。使用下表做為完成窗體的指南:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
區域
最接近用戶的區域。
區域可用來建立資源群組。
Postgre SQL 管理員密碼
N/A
PostgreSQL 伺服器管理員的密碼。
Postgre SQL 用戶密碼
N/A
PostgreSQL 應用程式使用者的密碼,用於應用程式。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後選取 [建立] 將應用程式部署至 Azure Spring Apps。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板 上建立此服務的圖格,作為服務的 [概觀] 頁面快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
使用下列步驟來建立 Azure Spring Apps 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例:
3.1. 登入 Azure 入口網站
移至 Azure 入口網站 ,然後輸入您的認證以登入入口網站。 預設檢視是您的服務儀表板。
3.2. 建立 Azure Spring Apps 執行個體
使用下列步驟來建立服務實例:
選取 入口網站角落的 [建立資源 ]。
選取 [計算 >Azure Spring Apps]。
填寫 [基本] 索引卷標上的 窗體。使用下表做為完成窗體的指南:
設定
建議的值
描述
訂用帳戶
您的訂閱名稱。
您要用於伺服器的 Azure 訂用帳戶。 如果您有多個訂用帳戶,請選擇您想要針對資源計費的訂用帳戶。
資源群組
myresourcegroup
新的資源群組名稱,或您訂用帳戶中現有的資源群組名稱。
名稱
myasa
識別 Azure Spring Apps 服務的唯一名稱。 名稱長度必須為 4 到 32 個字元,且只能包含小寫字母、數字及連字號。 服務名稱的第一個字元必須是字母,且最後一個字元必須是字母或數字。
計劃
基本
定價方案會決定與您的實例相關聯的資源和成本。
區域
最接近用戶的區域。
最靠近您使用者的位置。
區域備援
未選取
是否要在 Azure 可用性區域中建立 Azure Spring Apps 服務。 目前,此功能僅在某些區域中受到支援。
選取 [檢閱並建立] 以檢閱您的選取項目。 然後,選取 [建立] 以布建 Azure Spring Apps 實例。
在工具列上,選取 [通知] 圖示 (鈴鐺) 以監視部署程序。 部署完成後,您可以選取 [釘選到儀錶板],這會在 Azure 入口網站 儀錶板 上建立此服務的圖格,作為服務的 [概觀] 頁面的 快捷方式。 選取 [移至資源 ] 以開啟服務的 [概 觀 ] 頁面。
3.3. 準備 PostgreSQL 實例
使用下列步驟建立 適用於 PostgreSQL 的 Azure 資料庫 伺服器:
在 Azure 入口網站中,選取 [建立資源] 。
選取 [資料庫 > 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器]。
在 [基本] 索引標籤中填寫下列資訊:
伺服器名稱 : my-demo-pgsql
區域 : 美國東部
PostgreSQL 版本 : 14
工作負載類型 : 開發
啟用高可用性 :未選取
驗證方法 : 僅 PostgreSQL 驗證
管理員用戶名稱 : myadmin
密碼 和 確認密碼 :輸入密碼。
使用下列資訊設定 [ 網络] 索引 標籤:
線上方法 : 公用存取(允許的IP 位址)
允許從 Azure 內的任何 Azure 服務公開存取此伺服器 :選取
選取 [ 檢閱 + 建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以布建伺服器。 這項作業可能需要幾分鐘的時間。
前往您 Azure 入口網站上的 [PostgreSQL 伺服器]。
從導覽功能表中選取 [資料庫 ] 以建立資料庫 ,例如 Todo 。
3.4. 將應用程式實例連線至 PostgreSQL 實例
使用下列步驟來連線服務實例:
在 Azure 入口網站中,移至您的 Azure Spring Apps 執行個體。
從瀏覽窗格中,開啟 [ 應用程式 ] 窗格,然後選取 [ 建立應用程式 ]。
在 [ 建立應用程式] 頁面上,針對應用程式名稱,使用 simple-todo-web 並針對運行時間平臺,選取 [Java 17 ]。
選取 [建立 ] 以完成應用程式建立,然後選取應用程式以檢視詳細數據。
從瀏覽窗格中選取 [服務連接器 ],然後選取 [ 建立 ] 以建立新的服務連線。
在 [基本] 索引標籤中填寫下列資訊:
服務類型 : 適用於 PostgreSQL 的 DB 彈性伺服器
線上名稱 :填入可修改的自動產生名稱。
訂用帳戶 ︰選取您的訂用帳戶。
PostgreSQL 彈性伺服器 : my-demo-pgsql
PostgreSQL 資料庫 :選取您建立的資料庫。
用戶端類型 : SpringBoot
使用下列資訊設定 [ 下一步:驗證 ] 索引標籤:
選取您想要在計算服務和目標服務之間使用的驗證類型。 :選取 [連接字元串 ]。
繼續... :選取 [資料庫認證 ]。
用戶名稱 : myadmin
密碼 :輸入您的密碼。
選取 [下一步:網路] 。 使用預設選項 [設定防火牆規則] 來啟用目標服務的存取。
選取 [下一步:檢閱和建立 ] 以檢閱您的選取專案,然後選取 [ 建立 ] 以建立連線。
使用下列步驟來建立 Azure Spring Apps 實例和 適用於 PostgreSQL 的 Azure 資料庫 實例:
使用下列命令以 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。
使用下列步驟搭配適用於 Azure Spring Apps 的 Maven 外掛程式進行部署:
瀏覽至範例項目目錄,然後執行下列命令以在 Azure Spring Apps 中設定應用程式:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
下列清單描述命令互動:
選取要設定 的子模組:選取要設定的 模組,然後輸入 SimpleTodo Web 模組的數目。
OAuth2 登入 :根據 OAuth2 通訊協定授權登入 Azure。
選取訂 用帳戶:選取您所建立之 Azure Spring Apps 實例的訂用帳戶清單編號,預設為清單中的第一個訂用帳戶。 如果您使用預設號碼,請直接按 ENTER 。
選取 [Azure Spring Apps :選取您所建立的 Azure Spring Apps 實例數目]。 如果您使用預設號碼,請直接按 ENTER 。
公開此應用程式的公用存取? :按 y 。
確認儲存上述所有組態 (Y/n) :按 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
[INFO] InstanceName:simple-todo-web-default-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:UNREGISTERED
[INFO] InstanceName:simple-todo-web-default-x-xxxxxxxxx-xxxxx Status:Terminating Reason:null DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(simple-todo-web)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-web.azuremicroservices.io
輸出 應用程式 URL 是存取 todo
應用程式的端點。
您現在可以將應用程式部署至 Azure Spring Apps。 使用下列步驟來封裝應用程式、布建 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-todo-web
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-web.azuremicroservices.io/
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
輸出 端點 是存取 todo
應用程式的端點。
5.驗證 Web 應用程式
現在您可以存取已部署的應用程式,以查看它是否正常運作。
使用下列步驟來驗證:
部署完成之後,您可以從部署輸出找到應用程式 URL:
使用輸出應用程式 URL 存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
檢查每個資源部署的詳細數據,這適用於調查任何部署問題。
使用輸出應用程式 URL 存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
使用下列步驟來驗證:
部署完成之後,您可以使用下列URL存取應用程式: https://${AZURE_SPRING_APPS_NAME}-${APP_NAME}.azuremicroservices.io/
。 當您在localhost中看到時,頁面應該會顯示。
若要檢查應用程式的記錄以調查任何部署問題,請使用下列命令:
az spring app logs \
--service ${AZURE_SPRING_APPS_NAME} \
--name ${APP_NAME}
使用下列步驟來驗證:
部署完成之後,您可以從部署輸出找到應用程式 URL:
存取應用程式 URL。 當您在localhost中看到時,頁面應該會顯示。
檢查每個資源部署的詳細數據,這適用於調查任何部署問題。
使用輸出應用程式 URL 存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
使用輸出端點存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
使用下列步驟來驗證:
部署完成之後,從部署輸出中尋找應用程式 URL:
存取應用程式 URL。 當您在localhost中看到時,頁面應該會顯示。
檢查每個資源部署的詳細數據,這適用於調查任何部署問題。
使用輸出應用程式 URL 存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
使用輸出端點存取應用程式。 當您在localhost中看到時,頁面應該會顯示。
6.清除資源
當您不再需要資源時,請務必刪除您在本文中建立的資源。 您可以刪除 Azure 資源群組,其中包括資源群組中的所有資源。
使用下列步驟來刪除整個資源群組,包括新建立的服務實例:
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組 ],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除 ]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除 ]。
使用下列步驟來刪除整個資源群組,包括新建立的服務實例:
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組 ],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除 ]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除 ]。
使用下列命令來移除此範例應用程式中使用的所有 Azure 資源:
azd down
下列清單描述命令互動:
要刪除的資源總數: <resources-total>,您確定要繼續嗎? :按 y 。
主控台會輸出類似下列範例的訊息:
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
使用下列步驟來刪除整個資源群組,包括新建立的服務實例:
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組 ],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除 ]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除 ]。
使用下列步驟來刪除整個資源群組,包括新建立的服務實例:
在 Azure 入口網站中找出您的資源群組。 在導覽功能表上,選取 [資源群組 ],然後選取資源群組的名稱。
在 [ 資源群組] 頁面上,選取 [ 刪除 ]。 在文字框中輸入資源群組的名稱以確認刪除,然後選取 [ 刪除 ]。
使用下列命令來刪除整個資源群組,包括新建立的服務:
az group delete --name ${RESOURCE_GROUP}
7. 後續步驟
如需詳細資訊,請參閱下列文章: