將應用程式部署自動化至 Azure Spring Apps
注意
Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。
本文適用於: ✔️基本/標準✔️企業
本文說明如何使用適用於 Azure Pipelines 的 Azure Spring Apps 工作來部署應用程式。
持續整合和持續傳遞工具可讓您以最少的努力和風險,快速將更新部署到現有的應用程式。 Azure DevOps 可協助您組織及控制這些重要作業。
下列影片說明使用您選擇的工具進行端對端自動化,包括 Azure Pipelines。
建立 Azure Resource Manager 服務連線
首先,建立 Azure DevOps 專案的 Azure Resource Manager 服務連線。 如需指示,請參閱 連線 至 Microsoft Azure。 請務必選取您用於 Azure Spring Apps 服務實例的相同訂用帳戶。
建置和部署應用程式
您現在可以使用一系列工作來建置和部署專案。 下列 Azure Pipelines 樣本會定義變數、用來建置應用程式的 .NET Core 工作,以及部署應用程式的 Azure Spring Apps 工作。
variables:
workingDirectory: './steeltoe-sample'
planetMainEntry: 'Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll'
solarMainEntry: 'Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll'
planetAppName: 'planet-weather-provider'
solarAppName: 'solar-system-weather'
serviceName: '<your service name>'
steps:
# Restore, build, publish and package the zipped planet app
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
arguments: '--configuration Release'
zipAfterPublish: false
modifyOutputPath: false
workingDirectory: $(workingDirectory)
# Deploy the planet app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(planetAppName)/publish-deploy-planet.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(planetMainEntry)
# Deploy the solar app
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<Service Connection Name>'
Action: 'Deploy'
AzureSpringCloud: $(serviceName)
AppName: 'testapp'
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
RuntimeVersion: 'NetCore_31'
DotNetCoreMainEntryPath: $(solarMainEntry)
設定 Azure Spring Apps 實例和 Azure DevOps 專案
首先,使用下列步驟來設定現有的 Azure Spring Apps 實例,以搭配 Azure DevOps 使用。
- 移至您的 Azure Spring Apps 實例,然後建立新的應用程式。
- 移至 Azure DevOps 入口網站,然後在您選擇的組織下建立新專案。 如果您沒有 Azure DevOps 組織,您可以免費建立一個。
- 選取 [存放庫],然後將 Spring Boot 示範程式代碼匯入存放庫。
建立 Azure Resource Manager 服務連線
接下來,建立 Azure DevOps 專案的 Azure Resource Manager 服務連線。 如需指示,請參閱 連線 至 Microsoft Azure。 請務必選取您用於 Azure Spring Apps 服務實例的相同訂用帳戶。
建置和部署應用程式
您現在可以使用一系列工作來建置和部署專案。 下列各節說明使用 Azure DevOps 部署應用程式的各種選項。
使用管線部署
若要使用管線進行部署,請遵循下列步驟:
選取 [ 管線],然後使用 Maven 範本建立新的管線。
編輯azure-pipelines.yml檔案,將字段設定
mavenPomFile
為 'complete/pom.xml'。選取 右側的 [顯示小幫手 ],然後選取 [Azure Spring Apps ] 範本。
選取您為 Azure 訂用帳戶建立的服務連線,然後選取您的 Azure Spring Apps 實例和應用程式實例。
停用 使用預備部署。
將 [套件] 或 [資料夾] 設定為完成/目標/spring-boot-complete-0.0.1-SNAPSHOT.jar。
選取 [新增 ] 將這項工作新增至管線。
您的管線設定應該符合下圖。
您也可以使用下列管線範本來建置和部署專案。 此範例會先定義 Maven 工作來建置應用程式,然後是使用適用於 Azure Pipelines 的 Azure Spring Apps 工作來部署 JAR 檔案的第二個工作。
steps: - task: Maven@3 inputs: mavenPomFile: 'complete/pom.xml' - task: AzureSpringCloud@0 inputs: azureSubscription: '<your service connection name>' Action: 'Deploy' AzureSpringCloud: <your Azure Spring Apps service> AppName: <app-name> DeploymentType: 'Artifacts' UseStagingDeployment: false DeploymentName: 'default' Package: ./target/your-result-jar.jar
選取 [ 儲存並執行],然後等候作業完成。
藍綠部署
上一節中顯示的部署會在部署時立即接收應用程式流量。 這可讓您先在生產環境中測試應用程式,再接收任何客戶流量。
編輯管線檔案
若要像先前所示的方式建置應用程式,並將其部署至預備部署,請使用下列範本。 在此範例中,預備部署必須已經存在。 如需替代方法,請參閱 藍綠部署策略。
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
DeploymentType: 'Artifacts'
UseStagingDeployment: true
Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Set Production'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
UseStagingDeployment: true
使用 Releases 區段
下列步驟說明如何從 [發行 ] 區段啟用藍色-綠色部署。
選取 [管線] ,然後為您的 Maven 組建和發佈成品建立新的管線。
- 為您的程式代碼位置選取 [Azure Repos Git ]。
- 選取程式代碼所在的存放庫。
- 選取 Maven 樣本並修改檔案,將欄位設定
mavenPomFile
為complete/pom.xml
。 - 選取 右側的 [顯示小幫手 ],然後選取 [發佈組建成品 ] 範本。
- 將 [路徑] 設定 為 [發佈 ] 以 完成/目標/spring-boot-complete-0.0.1-SNAPSHOT.jar。
- 選取儲存並執行。
選取 [發行],然後選取 [建立發行]。
新增管線,然後選取 [空白作業 ] 以建立作業。
在 [階段] 下,選取第 1 行工作,0 個工作
- 選取將 + 工作新增至作業的 。
- 搜尋 Azure Spring Apps 範本,然後選取 [新增] 以將工作新增至作業。
- 選取 [Azure Spring Apps 部署: ] 以編輯工作。
- 使用應用程式的資訊填入此工作,然後停用 [使用預備部署]。
- 如果不存在,請啟用 [建立新的預備部署],然後在 [部署] 中輸入名稱。
- 選取 [ 儲存] 以儲存此工作。
- 選取 [確定]。
選取 [ 管線],然後選取 [ 新增成品]。
- 在 [來源][建置管線] 下 , 選取先前建立的管線。
- 選取 [新增],然後選取 [儲存]。
選取 [階段] 底下的 [1 個作業]、[1 個工作]。
流覽至 [階段 1] 中的 [Azure Spring Apps 部署] 工作,然後選取 [套件] 或 [資料夾] 旁的省略號。
選取 對話框中spring-boot-complete-0.0.1-SNAPSHOT.jar ,然後選取 [ 確定]。
選取 將 + 另一個 Azure Spring Apps 工作新增至作業的 。
將動作變更為 [ 設定生產部署]。
選取 [儲存],然後選取 [建立版本] 來自動啟動部署。
若要確認應用程式的目前發行狀態,請選取 [ 檢視版本]。 完成這項工作之後,請流覽 Azure 入口網站 以確認您的應用程式狀態。
從來源部署
若要直接部署至 Azure 而不需要個別建置步驟,請使用下列管線範本。
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: <your Azure Spring Apps service>
AppName: <app-name>
DeploymentType: 'Artifacts'
UseStagingDeployment: false
DeploymentName: 'default'
Package: $(Build.SourcesDirectory)
從自定義映像部署
若要直接從現有的容器映射部署,請使用下列管線範本。
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your service connection name>'
Action: 'Deploy'
AzureSpringCloud: '<your Azure Spring Apps service>'
AppName: '<app-name>'
DeploymentType: 'CustomContainer'
UseStagingDeployment: false
DeploymentName: 'default'
ContainerRegistry: 'docker.io' # or your Azure Container Registry, e.g: 'contoso.azurecr.io'
RegistryUsername: '$(username)'
RegistryPassword: '$(password)'
ContainerImage: '<your image tag>'
部署並指定產生器(僅限企業方案)
如果您使用 Azure Spring Apps 企業版方案,您也可以使用 選項指定要用於部署動作 builder
的建立器,如下列範例所示。 如需詳細資訊,請參閱 使用 Tanzu 建置服務。
- task: AzureSpringCloud@0
inputs:
azureSubscription: '<your-service-connection-name>'
Action: 'Deploy'
AzureSpringCloud: '<your-Azure-Spring-Apps-service-instance-name>'
AppName: '<app-name>'
UseStagingDeployment: false
DeploymentName: 'default'
Package: './target/your-result-jar.jar'
Builder: '<your-Tanzu-Build-Service-Builder-resource>'
下一步
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: