快速入門:使用 Azure CLI 佈建 Azure Spring Apps
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:❌基本 ✔️ 標準 ✔️ Enterprise
此快速入門說明如何使用 Azure CLI 將 Azure Spring Apps 叢集部署到現有的虛擬網路。
Azure Spring Apps 可讓您在不需要變更程式碼的情況下,輕鬆地將 Spring 應用程式部署到 Azure。 服務會管理 Spring 應用程式的基礎結構,讓開發人員可以專注於處理程式碼。 Azure Spring 應用程式提供生命週期管理,使用全方位的監視和診斷、組態管理、服務探索、持續整合與持續傳遞的整合、藍綠部署等等。
企業層部署方案包含下列 Tanzu 元件:
- 建置服務
- 應用程式設定服務
- 服務登錄
- Spring Cloud 閘道
- API 入口網站
必要條件
- Azure 訂用帳戶。 如果您沒有訂用帳戶,請先建立免費帳戶,再開始操作。
- Azure Spring Apps 叢集的兩個專用子網路,一個用於服務執行階段,另一個用於 Spring 應用程式。 如需了解子網路和虛擬網路需求,請參閱在虛擬網路中部署 Azure Spring Apps 的虛擬網路需求一節。
- 適用於 Azure Spring Apps 診斷設定的現有 Log Analytics 工作區,以及工作區型 Application Insights 資源。 如需詳細資訊,請參閱使用診斷設定分析記錄和計量以及 Azure Spring Apps 中的 Application Insights Java 內含式代理程式。
- 您已識別供 Azure Spring Apps 叢集使用的三個內部無類別網域間路由選擇 (CIDR) 範圍 (至少每個 /16)。 這些 CIDR 範圍無法直接路由傳送,且只會由 Azure Spring Apps 叢集用於內部。 針對內部 Spring 應用程式 CIDR 範圍,或叢集虛擬網路位址範圍所包括的任何 IP 範圍,叢集不得使用 169.254.0.0/16、172.30.0.0/16、172.31.0.0/16 或 192.0.2.0/24。
- 已將服務權限授與給虛擬網路。 Azure Spring 應用程式資源提供者需要虛擬網路的
User Access Administrator
和Network Contributor
權限,才能授與虛擬網路上的專用和動態服務主體,以便進一步部署和維護。 如需指示和詳細資訊,請參閱在虛擬網路中部署 Azure Spring Apps 的將服務權限授與給虛擬網路一節。 - 如果您使用 Azure 防火牆或網路虛擬裝置 (NVA),也必須滿足下列必要條件:
- 網路和完整網域名稱 (FQDN) 規則。 如需詳細資訊,請參閱虛擬網路需求。
- 套用至每個服務執行階段和 Spring 應用程式子網路的唯一使用者定義路由 (UDR)。 如需 UDR 的詳細資訊,請參閱虛擬網路流量路由。 部署 Azure Spring Apps 叢集前,應先設定具有針對 0.0.0.0/0 的路由,以及目的地為您 NVA 的 UDR。 如需詳細資訊,請參閱在虛擬網路中部署 Azure Spring Apps 的自備路由表一節。
- Azure CLI
- 如果您是第一次在目標訂用帳戶中部署 Azure Spring 應用程式企業方案執行個體,請參閱 Azure Marketplace 的企業方案中的需求一節。
檢閱 Azure CLI 部署指令碼
此快速入門中使用的部署指令碼來自 Azure Spring Apps 參考架構。
#!/bin/bash
echo "Enter Azure Subscription ID: "
read subscription
subscription=$subscription
echo "Enter Azure region for resource deployment: "
read region
location=$region
echo "Enter Azure Spring Resource Group Name: "
read azurespringrg
azurespring_resource_group_name=$azurespringrg
echo "Enter Azure Spring VNet Resource Group Name: "
read azurespringvnetrg
azurespring_vnet_resource_group_name=$azurespringvnetrg
echo "Enter Azure Spring Spoke VNet : "
read azurespringappspokevnet
azurespringappspokevnet=$azurespringappspokevnet
echo "Enter Azure Spring App SubNet : "
read azurespringappsubnet
azurespring_app_subnet_name='/subscriptions/'$subscription'/resourcegroups/'$azurespring_vnet_resource_group_name'/providers/Microsoft.Network/virtualNetworks/'$azurespringappspokevnet'/subnets/'$azurespringappsubnet
echo "Enter Azure Spring Service SubNet : "
read azurespringservicesubnet
azurespring_service_subnet_name='/subscriptions/'$subscription'/resourcegroups/'$azurespring_vnet_resource_group_name'/providers/Microsoft.Network/virtualNetworks/'$azurespringappspokevnet'/subnets/'$azurespringservicesubnet
echo "Enter Azure Log Analytics Workspace Resource Group Name: "
read loganalyticsrg
loganalyticsrg=$loganalyticsrg
echo "Enter Log Analytics Workspace Resource Name: "
read workspace
workspaceID='/subscriptions/'$subscription'/resourcegroups/'$loganalyticsrg'/providers/microsoft.operationalinsights/workspaces/'$workspace
echo "Enter Reserved CIDR Ranges for Azure Spring: "
read reservedcidrrange
reservedcidrrange=$reservedcidrrange
echo "Enter key=value pair used for tagging Azure Resources (space separated for multiple tags): "
read tag
tags=$tag
randomstring=$(LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | fold -w 13 | head -n 1)
azurespring_service='spring-'$randomstring #Name of unique Spring resource
azurespring_appinsights=$azurespring_service
azurespring_resourceid='/subscriptions/'$subscription'/resourceGroups/'$azurespring_resource_group_name'/providers/Microsoft.AppPlatform/Spring/'$azurespring_service
# Create Application Insights
az monitor app-insights component create \
--app ${azurespring_service} \
--location ${location} \
--kind web \
-g ${azurespringrg} \
--application-type web \
--workspace ${workspaceID}
az spring create \
-n ${azurespring_service} \
-g ${azurespringrg} \
-l ${location} \
--sku Standard \
--app-insights ${azurespring_service} \
--app-subnet ${azurespring_app_subnet_name} \
--service-runtime-subnet ${azurespring_service_subnet_name} \
--reserved-cidr-range ${reservedcidrrange} \
--tags ${tags}
# Update diagnostic setting for Azure Spring instance
az monitor diagnostic-settings create \
--name monitoring \
--resource ${azurespring_resourceid} \
--logs '[{"category": "ApplicationConsole","enabled": true}]' \
--workspace ${workspaceID}
部署叢集
若要使用 Azure CLI 指令碼部署 Azure Spring Apps 叢集,請遵循下列步驟:
使用下列命令登入 Azure:
az login
登入之後,此命令會輸出您有權存取之所有訂用帳戶的相關資訊。 記下您想要使用之訂用帳戶的名稱和識別碼。
設定目標訂用帳戶。
az account set --subscription "<your subscription name>"
註冊 Azure Spring Apps 資源提供者。
az provider register --namespace 'Microsoft.AppPlatform'
將必要的延伸模組新增至 Azure CLI。
az extension add --name spring
選擇提供 Azure Spring Apps 之區域中的部署位置,如依區域提供的產品中所示。
使用下列命令來產生 Azure 位置的清單。 記下您在上一個步驟中選取之區域的簡短 [Name] 值。
az account list-locations --output table
建立要部署資源的資源群組。
az group create --name <your-resource-group-name> --location <location-name>
將 Azure Spring 應用程式標準方案或企業方案的指令碼儲存在本機,然後從 Bash 提示字元執行。
標準方案:
./azuredeploySpringStandard.sh
企業方案:
./azuredeploySpringEnterprise.sh
當指令碼提示時,輸入下列值:
- 您稍早儲存的 Azure 訂用帳戶識別碼。
- 您稍早儲存的 Azure 位置名稱。
- 您稍早建立之資源群組的名稱。
- 您要在其中部署資源的虛擬網路資源群組名稱。
- 輪輻虛擬網路的名稱 (例如 vnet-spoke)。
- Azure Spring Apps 應用程式服務所要使用的子網路名稱 (例如 snet-app)。
- Azure Spring Apps 執行階段服務所要使用的子網路名稱 (例如 snet-runtime)。
- 要用於儲存診斷記錄之 Azure Log Analytics 工作區的資源群組名稱。
- Azure Log Analytics 工作區的名稱 (例如 la-cb5sqq6574o2a)。
- Azure Spring Apps 所要使用之虛擬網路的 CIDR 範圍 (例如 XX.X.X.X/16,XX.X.X.X/16,XX.X.X.X/16)。
- 要在支援標籤的所有資源上套用為標籤的索引鍵/值組。 如需詳細資訊,請參閱使用標籤來組織 Azure 資源和管理階層。 使用空格分隔清單來套用多個標籤 (例如 environment=Dev BusinessUnit=finance)。
提供此資訊之後,指令碼將會建立及部署 Azure 資源。
檢閱已部署的資源
您可以使用 Azure 入口網站來檢查已部署的資源,或使用 Azure CLI 來列出已部署的資源。
清除資源
如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。 若要使用 Azure CLI 刪除資源群組,請使用下列命令:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
下一步
在此快速入門中,您已使用 Azure CLI 將 Azure Spring Apps 執行個體部署到現有的虛擬網路,然後驗證該部署。 若要深入了解 Azure Spring Apps,請繼續處理下列資源。
- 從下列位置部署下列其中一個範例應用程式:
- 使用自訂網域搭配 Azure Spring Apps。
- 使用 Azure 應用程式閘道向網際網路公開 Azure Spring Apps 中的應用程式。 如需更多資訊,請參閱在虛擬網路中使用端對端 TLS 公開應用程式。
- 檢視以 Microsoft Azure Well-Architected Framework 為基礎的安全端對端 Azure Spring Apps 參考架構。