在這篇文章中,我們主要來如何將Azure DevOps中的項目作為應用發布到中國版Azure的App Service中。
什么是Azure DevOps
Azure DevOps, 原名為VSTS, 全稱是Visual Studio Team System,是由微軟開發的一套具有高生產力、高集成性、可擴展的生命周期開發工具,免費,無限個數的私有repo,GitHub的public repo是無限的,但是私有repo要收費
Azure App Service
- Azure App Service的優點
- 讓開發人員更容易在Azure上構建可擴展的Web和移動應用程序后端
- 讓開發人員更容易在Azure上組合服務
- 讓開發人員更容易將Azure應用程序與記錄系統整合起來
- 降低了運行應用程序后端的成本
部署步驟
- 1、在Azure DevOps中新建Repo, 本地Clone,Push代碼
- 2、在Azure DevOps中并編譯生成一個 .NET Core應用, 配置持續集成環境
- 3、將Azure添加到Azure DevOps的Service Endpoint(僅限中國區的Azure)
- 4、在Azure中創建App Service
- 5、配置Azure DevOps中構建的應用Release到Azure App Service
必備條件:
1、Azure訂閱
2、Azure DevOps環境
3、Git?
4、Visual Studio 2017 or Visual Studio Code
一、在VSTS中新建Repo, 本地Clone,Push代碼
1、在VSTS中新建git代碼倉庫?
創建完成,得到git的orgin地址
在本地新建文件夾,git獲取代碼路徑
c:\Microsoft Teams> mkdir CITest
c:\Microsoft Teams> git clone https://qiuyuhua.visualstudio.com/CITest/_git/CITest
安裝dotnet的模板
c:\Microsoft Teams> dotnet new -i MicrosoftTeams.Templates
2、根據git的項目地址,上傳我們的項目文件代碼
二、在Azure DevOps中并編譯生成一個 .NET Core應用, 配置持續集成環境
1、在Azure DevOps中,導航到“Code”下的的 “文件” 選項卡,然后單擊“設置生成”
2、選擇代碼源, 這里選中?VSTS Git
, 點擊Continue
3、選擇Build的模板, 搜索框中輸入?Core
,點擊選中 ASP.NET Core, 然后點擊Apply
現在,可以看到所有由模板自動添加到構建管道中的任務。這些是每當我們推代碼更改時自動運行的Build任務, 這里我們進行Build的相關配置
4、配置代理隊列:
Azure DevOps: 設置Build的名稱,選擇Hosted VS2017. 這就是如何使用我們的代理池來構建應用程序所需的軟件。
依次對Restore
、Build
、Test
、Publish
,進行響應的配置
5、點擊Triggers Tab頁在生成管道中.勾選 Enable the Continuous Integration trigger.?
這將確保每次提交到存儲庫的更改時自動觸發生成過程
6、點擊?Save & queue?開始進行一個build
我們在頁面上,可以看到剛剛配置的Build已經啟動,并且在進行相關環境的初始化
整個Build構建完成時,我們會收到一封通知郵件
7、?Save & queue?開始進行一個build
查看Build的總體情況
生成完成,選擇生成號以查看生成的簡要信息
下載Artifact,查看剛剛Build完成,Publish后的文件
可以看到和我們在本地進行Publish操作,生成的文件是一樣的,以上就是在Azure DevOps中構建Build的一個完整過程。
三、將Azure添加到Azure DevOps的Service Endpoint
1、把中國區的Azure添加到 Azure DevOps的 Service Endpoint
這個是使用 Azure DevOps 自動部署到中國區Azure的前置條件。Service Endpoint是以項目為單位進行配置的
點擊?設置?按鈕 -> 選擇 Service -> 點擊左側 New service connection -> 選中點擊 Azure Resource Manager -> 彈出框點擊最最下方的 “use the full version of the service connection dialog”
這里關鍵的幾個信息填寫:
- Connection name (可以自由填寫)
- Enviroment (選擇: AzureChinaColud)
- Subscription ID (Azure的訂閱ID)
- Subscription name (Azure的訂閱名稱)
- Service principal client ID (重點: 下文會說到)
- Service principal key (重點: 下文會說到)
- Tenant ID (Azure Active Directory -> 屬性 -> 目錄Id)
2、配置Service principal client ID和Service principal key
打開http://portal.azure.cn -> 選擇左側 Azure Active Directory -> 到 用戶設置 -> 確保應用注冊狀態時可用狀態
然后點擊 應用注冊 -> 新應用程序注冊
然后打開 屬性 -> 修改應用程序的ID URI 規則
接著,打開密鑰 -> 添加密鑰
點擊左側菜單 成本管理+計費 -> 訂閱 -> 選擇對應的訂閱。然后點擊 訪問控制(標識和訪問管理)添加權限,給咱們剛剛創建的應用程序添加 參與者 權限
這里回到上文中,Azure Resource Manager的配置,填寫上文設置的Service principal client ID和Service principal key
配置完成后,點擊?Verify connection
, 驗證配置是否成功
四、在Azure中創建App Service
1、選擇左側導航欄?應用程序服務
, 點擊```添加`` 新建 應用程序服務
2、選擇?Web應用
, 點擊?創建
3、輸入應用程序名稱,完成創建
4、回到應用程序列表,看到剛剛新建的App Service,已經初始化成功,并且處于Running
的狀態
5、打開訪問地址,出現下圖,說明應用是創建成功的
五、配置Azure DevOps中構建的應用Release到Azure App Service
首先,導航到Release頁面,新建一個Release Pipeline
選擇Release的模板,這里選擇Azure App Service deployment
, 點擊Apply
添加Artifact
, 選中之前定義的Build
名稱,可以進行別名命名
配置deployment trigger
, 目的是當關聯的Build
生成成功后,會自動發布到我們的App Service上
配置Deploy Azure App Service
, 找到App Service Url
, 填入新建的Azure服務名稱
當我們的Build
被觸發時,且成功執行完成后,可以看到配置好的Release
已經啟動
直到Release
完成, 此時已經將應用發布到了Azure
回到Miecrosoft Teams中,將Outgoing Webhook的地址修改為Azure App Service的地址
修改完成后,我們@機器人,看看消息的響應
參考文檔
- 1、Build your ASP.NET 4 app
- 2、Deploy a web app to Azure App Services
- 3、Create an Azure service connection
- 4、Troubleshoot Azure Resource Manager service connections
- 5、中國區的Azure添加到 Azure DevOps 的 Service Endpoint