共用方式為


快速入門:使用 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/16172.30.0.0/16172.31.0.0/16192.0.2.0/24
  • 已將服務權限授與給虛擬網路。 Azure Spring 應用程式資源提供者需要虛擬網路的 User Access AdministratorNetwork Contributor 權限,才能授與虛擬網路上的專用和動態服務主體,以便進一步部署和維護。 如需指示和詳細資訊,請參閱在虛擬網路中部署 Azure Spring Apps將服務權限授與給虛擬網路一節。
  • 如果您使用 Azure 防火牆或網路虛擬裝置 (NVA),也必須滿足下列必要條件:
  • 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 叢集,請遵循下列步驟:

  1. 使用下列命令登入 Azure:

    az login
    

    登入之後,此命令會輸出您有權存取之所有訂用帳戶的相關資訊。 記下您想要使用之訂用帳戶的名稱和識別碼。

  2. 設定目標訂用帳戶。

    az account set --subscription "<your subscription name>"
    
  3. 註冊 Azure Spring Apps 資源提供者。

    az provider register --namespace 'Microsoft.AppPlatform'
    
  4. 將必要的延伸模組新增至 Azure CLI。

    az extension add --name spring
    
  5. 選擇提供 Azure Spring Apps 之區域中的部署位置,如依區域提供的產品中所示。

  6. 使用下列命令來產生 Azure 位置的清單。 記下您在上一個步驟中選取之區域的簡短 [Name] 值。

    az account list-locations --output table
    
  7. 建立要部署資源的資源群組。

    az group create --name <your-resource-group-name> --location <location-name>
    
  8. 將 Azure Spring 應用程式標準方案企業方案的指令碼儲存在本機,然後從 Bash 提示字元執行。

    標準方案:

    ./azuredeploySpringStandard.sh
    

    企業方案:

    ./azuredeploySpringEnterprise.sh
    
  9. 當指令碼提示時,輸入下列值:

    • 您稍早儲存的 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,請繼續處理下列資源。