如何將Outgoing Webhook部署到中國版Azure

在這篇文章中,我們主要來如何將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代碼倉庫?vsts_create_proj

創建完成,得到git的orgin地址

created_proj

在本地新建文件夾,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的項目地址,上傳我們的項目文件代碼

solution

二、在Azure DevOps中并編譯生成一個 .NET Core應用, 配置持續集成環境

1、在Azure DevOps中,導航到“Code”下的的 “文件” 選項卡,然后單擊“設置生成”

set-up-first-build-from-code-hub

2、選擇代碼源, 這里選中?VSTS Git, 點擊Continue

vsts_git_source

3、選擇Build的模板, 搜索框中輸入?Core,點擊選中 ASP.NET Core, 然后點擊Apply

select_build_template

現在,可以看到所有由模板自動添加到構建管道中的任務。這些是每當我們推代碼更改時自動運行的Build任務, 這里我們進行Build的相關配置

build_pipeline_setting

4、配置代理隊列:

Azure DevOps: 設置Build的名稱,選擇Hosted VS2017. 這就是如何使用我們的代理池來構建應用程序所需的軟件。

build_pipeline_setting

依次對RestoreBuildTestPublish,進行響應的配置

build_pipeline_setting_restore

5、點擊Triggers Tab頁在生成管道中.勾選 Enable the Continuous Integration trigger.?
這將確保每次提交到存儲庫的更改時自動觸發生成過程

solution

6、點擊?Save & queue?開始進行一個build

我們在頁面上,可以看到剛剛配置的Build已經啟動,并且在進行相關環境的初始化

build1

build2

nuget-restore

nuget-restore

整個Build構建完成時,我們會收到一封通知郵件

build_succeeded_emaile

7、?Save & queue?開始進行一個build

查看Build的總體情況

生成完成,選擇生成號以查看生成的簡要信息

build_summary

下載Artifact,查看剛剛Build完成,Publish后的文件

build_artifact_download

build_artifact_publish_flies

可以看到和我們在本地進行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”

new-service-connection

add-new-azure-resource-manager-service-connection

這里關鍵的幾個信息填寫:

  • 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 -> 到 用戶設置 -> 確保應用注冊狀態時可用狀態

app-register

然后點擊 應用注冊 -> 新應用程序注冊

new-app-register

app-sammary

然后打開 屬性 -> 修改應用程序的ID URI 規則

app-attribute

接著,打開密鑰 -> 添加密鑰

first_principal_key

點擊左側菜單 成本管理+計費 -> 訂閱 -> 選擇對應的訂閱。然后點擊 訪問控制(標識和訪問管理)添加權限,給咱們剛剛創建的應用程序添加 參與者 權限

app-authority

這里回到上文中,Azure Resource Manager的配置,填寫上文設置的Service principal client ID和Service principal key

配置完成后,點擊?Verify connection, 驗證配置是否成功

azure_resource_manager_connection

四、在Azure中創建App Service

1、選擇左側導航欄?應用程序服務, 點擊```添加`` 新建 應用程序服務

create_appservice_step1

2、選擇?Web應用, 點擊?創建

create_appservice_step2

3、輸入應用程序名稱,完成創建

app_service_name

4、回到應用程序列表,看到剛剛新建的App Service,已經初始化成功,并且處于Running的狀態

app_service_list

5、打開訪問地址,出現下圖,說明應用是創建成功的

verify_app_service

五、配置Azure DevOps中構建的應用Release到Azure App Service

首先,導航到Release頁面,新建一個Release Pipeline

release_new_pipeline

選擇Release的模板,這里選擇Azure App Service deployment, 點擊Apply

select_stage_templete

添加Artifact, 選中之前定義的Build名稱,可以進行別名命名

add_an_artifact

配置deployment trigger, 目的是當關聯的Build生成成功后,會自動發布到我們的App Service上

deployment_trigger

配置Deploy Azure App Service, 找到App Service Url, 填入新建的Azure服務名稱

release_app_service_url

當我們的Build被觸發時,且成功執行完成后,可以看到配置好的Release已經啟動

release_stage_running

直到Release完成, 此時已經將應用發布到了Azure

release_stage_done

回到Miecrosoft Teams中,將Outgoing Webhook的地址修改為Azure App Service的地址

edit_outgoingwebhook_url

修改完成后,我們@機器人,看看消息的響應

testbot_message

參考文檔

  • 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278095.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Google SRE 讀書筆記 扒一扒SRE用的那些工具

寫在前面 最近花了一點時間閱讀了《SRE Goolge運維解密》這本書,對于書的內容大家可以看看豆瓣上的介紹。總體而言,這本書是首次比較系統的披露Google內部SRE運作的一些指導思想、實踐以及相關的問題,對于我們運維乃至開發人員都有一定的借鑒…

第8章 java中的并發工具類

8.1 等待線程完成的CountDownLatch 作用:讓一個線程等待其余線程完成之后在繼續執行,如主線程等待開啟服務的子線程執行完畢后主線程繼續執行,類似于join。 轉載于:https://www.cnblogs.com/AshOfTime/p/10608910.html

Microsoft Teams的Meet Now功能

今天,我們宣布完成了Skype for Business to Teams路線圖中首次披露的幾項關鍵會議功能。當個人聯系,溝通和協作時,工作就自然而然的完成了,我們相信這些功能(除了我們2月的公告之外)使Microsoft Teams為所有…

深入 Adobe Reader 保護模式 —— 第一部分 —— 設計

原作者:Liz McQuarrie, Ashutosh Mehra, Suchit Mishra, Kyle Randolph, Ben Roger 譯者:lordVice 校對: StrokMitream 看雪翻譯小組 介紹 我是 Kyle Randolph, 和我一起的還有負責 Acrobat 系列產品的安全團隊, 這些產…

Java泛型主題討論

說明:在學習泛型這一知識點中,主要參考自《瘋狂Java講義》第7章P307-P330的泛型內容,因為是跳著閱讀,所以前面的一些名詞不是特別清楚,這里也做出適當備注,供自己識記與理解。 1.泛型 理解:說到…

初學Vue.js,從頭來過~

之前上課也學過vue.js,但是一遍過下來,實話,沒有記住什么,所以決定自己在對照著文檔過一遍,所以之后會弄一些基礎的東西,還請大神們莫噴~~~~今天先給平臺打一個預防針,Young C 要來啦~~ 吼吼&…

從Microsoft Teams技術棧看前端技術發展趨勢

在前不久的微軟美國一年一度的Ignite大會上,微軟宣布Microsoft Teams是微軟歷史上發展最快的應用。它將取代Skype for business,成為語音視頻協作的主打產品。 我也有幸在上個月微軟中國年度技術大會Tech Summit 2018上被邀請作為講師講解基于Teams平臺…

LeetCode 最大正方形

在一個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,并返回其面積。 示例: 輸入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0輸出: 4解法:判斷以某個點為正方形右下角時最大的正方形時,那它的上方,左方和左上…

solidity字符串拼接

如果你希望馬上開始學習以太坊DApp開發,可以訪問匯智網提供的出色的在線互動教程: 以太坊DApp實戰開發入門去中心化電商DApp實戰開發當你開始學習使用solidity開發以太坊智能合約之后,很快你會碰到一個問題: 在solidity中該如何拼…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension現在正式登入Microsoft Teams。 它可用于團隊頻道和私人聊天,使您的對話更具描述性和信息性。 從Microsoft Teams應用商店獲取Confluence Cloud應用程序并連接到Confluence Cloud實例。 連接后,您將能夠搜索Conflue…

45 | 打蛇打七寸:精準測試

轉載于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App統計

周末閑來無事,統計了一下Teams的app商店里的app ( Teams App Store )。截至到現在(2018年11月)一共有145個app。要注意一點:如果app不是公開的(即單獨安裝到Office365租戶里,并沒有提交到office store&…

你必須要懂的APK瘦身知識

隨著業務復雜度的逐漸增加,代碼、資源也在不斷的增加,此時你的APP大小也在增加。從用戶層面來說,面對動輒幾十兆的APP來說在非WIFI情況下還是會猶豫要不要下載,不下載你就可能因此失去了一個用戶。從公司層面來講,流量…

DHT網絡

(基礎技術) 現在有一種方法,可以通過磁力鏈接,例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa,就可以獲取BT文件。 這個是通過DHT網絡來實現的。 DHT網絡是一個去中心化的,分布式信息存儲系統。 存儲的信息就…

Java基礎 Day04(個人復習整理)

分支結構 2、switch語句 因為if語句的級聯式最多只會處理三種情況,如果出現多情況 1>可以繼續使用if語句的級聯式,但是可能代碼的可讀性就會變差。  2>采用switch語句來解決。 switch語法格式: switch (存在多種情況的變量) {case 值…

java如何獲取一個double的小數位數

前言 看標題是不是覺得這是一個很簡單的問題,我一開始也是這么認為的,但是實際情況下,在各種情況下我們都進行了測試,發現很多實際情況是無法不盡如人意的。 方法分析 當前能想到的比較容易有下面幾種 1、直接使用double處理 2、將…

Node文件模塊

在上一篇文章中有提到,Node模塊分為核心模塊和文件模塊,接下來就簡單總結一下文件模塊。 文件模塊則是在運行時動態加載,需要完整的路徑分析、文件定位、編譯執行過程、速度相比核心模塊稍微慢一些,但是用的非常多。這些模塊需要我…

PHP GD庫解析一張簡單圖片并輸出

這里只演示一下2種顏色值的圖片&#xff0c;簡單描述下概念。 首先要安裝下GD庫。否則下面的代碼運行不了。 $size getimagesize(2.png); // 獲取圖片大小 $res imagecreatefrompng(2.png); // 獲取指定圖片的資源對象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

Permutations CodeForces - 736D (矩陣逆)

對于刪除每個對(x,y), 可以發現他對答案的貢獻為代數余子式$A_{xy}$ 復習了一下線代后發現代數余子式可以通過伴隨矩陣求出, 即$A_{xy}A^*[y][x]$, 伴隨矩陣$A^*|A|A^{-1}$可以通過高斯消元$O(\frac{n^3}{\omega})$求出 #include <iostream> #include <algorithm> …

開發Teams的messaging extension

什么是Messaging Extension Messaging Extension是微軟Teams的一種十分有用的擴展方式。可以讓用戶發送adaptive cards。具體的說明不在這里展開了。可以閱讀微軟官方的詳細說明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…