[Azure][VSTS]調整 VSTS 上 Azure App 的傳統佈署方式,改用新的資源管理佈署方式

目前 VSTS 針對 Azure Web App 的佈署方式做了調整,將原本的改成為傳統的,並且建議使用者改成新的資源管理佈署方式,因此花了一點時間整理一下設定方式

以往採用  VSTS 來佈署 Web App 的話,設定算是很簡單,只要按照相關步驟做點設定,就可以很容易使用了,因此之前也有整理一篇「透過 VSTS 的排程 Build 和 Alert 通知,簡化 Azure WebApp的部屬流程」,來說明相關的設定,使用起來也沒有太大的問題。

但從 2016/11 開始,在採用這樣佈署的過程中都會有些警告訊息,建議要改成新的 Azure Resource Manager,因此就利用一點時間,把相關設定整理一下,免得日後自己又忘記了。

首先當我們要採用新的 Azure RM App Service 的 Build Step ,首先要先到 VSTS 內,要先選擇新增一個 Service Endpoint 。透過下面的步驟,點選齒輪圖示後,選擇「New Service Endpoint」→「Azure Resource Manager

當開啟設定畫面的時候,紅色的部分是比較容易,這個在 Azure 上面就可以很容易從訂閱的部分來查到相關資訊,但比較麻煩的是下方藍色的部分,到底這些 Client ID , Key 和 Tenant ID 到底是甚麼呢 ?

要產生那些,則必須回到 Azure Portal 上,選擇 「Azure Active Directory」→「App registrations

接著按下 Add 去新增一組設定

這裡我們要設定名稱和 Sign-on URL, Name 的部分可以自己選擇你喜歡的,這裡我為了能知道這一組是給誰使用的,因此就把他訂為「VSTS」;而在 Sign-on URL 則輸入「https://VsiualStudio/SPN

建立好帳號之後,我們就可以看到這個帳號的 Application ID ,這個值就是我們在前面 Endpoint 內要去設定的「Service Principal ID」。解決了一個,接下來我們就透過下面圖示 2 的地方,去設定 Key

當進入之後,描述和到期時間的地方,則是可以按照你自己的需求和設定,設定好之後,不用管後面的 Value 欄位,直接儲存就可以了。

儲存之後就會在 Value 內出現值了,此時請不要關閉這個視窗,趕快把這個值複製出來,因為下次再進入的時候,這個值就會被隱藏起來,無法再看到了。而這個值就是 EndPoint 裡面要設定的「Service Principal Key」,這樣子我們就可以取得第二個值了。

當上述的步驟完成之後,我們回到 Active Directory 的畫面,選擇「Properties」→「Directory ID」,這個值就是我們所需要的第三個值 「Tenant ID」。

雖然透過上述的步驟,已經取得 Endpoint 所需要的三個設定值,但還沒有完成喔。因為我們還要設定這個帳號,在我們的訂閱或資源群組下有權限,這裡我們指定比較大的範圍,設定整個訂閱都有權限的話,則選擇訂閱內的「Access Control」→「Add

在這裡角色我們選擇「Contributor

並且把剛剛建立的  VSTS 帳號給建立上去。

當設定好權限,那麼就應該算是大功告成了

那後續應該就沒有甚麼問題,把相關設定設定好,就可以去透過 VSTS 去 Build 您所想要的 Web App 了。但如果您之前有使用過,稍微叮嚀一下,在目前新的 Build 產出目錄,有點調整了,要記得目錄是要指定是 $(build.artifactstagingdirectory) ,這樣才可以取得正確 Build 出來的 zip 檔案喔。