Azure Resource Manager Tools 預覽釋出
原文發表於 Azure Resource Manager Tools Preview
Azure Resource Manager Tools 預覽版
最近我們公開推出了 Azure Resource Manager Tools Preview for Visual Studio 的套件,這工具能幫助您:
- 使用 Azure 組件庫(Gallery)範本建立網站應用程式。
- 建立或編輯 Azure Resource Manager 的範本(例如:建一個帶有資料庫的網站),並使用檔案作為參數(比方說你有為 staging 及 production 環境做不同的設定)。
- 建立主控方案(resource group)並且將範本部署進去,以簡化資源的建立。
在 Build 2014 大會上,我們推出了新的 Azure 管理介面以及 Azure Resource Manager,而 Azure Resource Manager 可以幫助您將部署網站的工作(例如建立一個網站及一個資料庫)製作成範本並且能夠重複使用。這樣便能簡化得不斷重複的建立複雜環境、部署、測試及上線的工作,而且如此一來,您便能在新的 Azure 管理介面有一致化的介面來監控及管理您的應用程式。
在這個預覽工具下,您可以用一個 JSON 範本來描述要從 Azure 組件庫中使用範本來建立網站應用程式的工作,這幫助您能迅速建立起 Dev/Test 的環境,而最關鍵的功能,就是直接與 Visual Studio 整合,並且能使用它來編輯 Azure Resource Manager 的部署範本。
接下來我們將會用一個情境,一步步示範如何使用這個工具。首先,我們會從 Azure 組件庫中選一個範本來建立專案,並且會觀察在建立專案時會產生什麼東西,接著我們再建立及部署 Azure主控方案以及應用程式需要的 resource,一旦我們的主控方案建立完成,應用程式也完成部署了。
現在就下載這個工具:Azure Resource Manager Tools Preview for Visual Studio
Azure Cloud Gallery - 建立雲端 App 專案
安裝 Azure Resource Manager Tool 後,我們就可以在 Visual Studio 中使用 Azure 組件庫範本,你可以透過 檔案 -> 新增 -> 專案 -> Cloud -> Cloud App from the Azure Gallery 建立專案,下方的擷圖我建立了一個名為 MyCloudApp 的專案:
一旦從 Azure Gallery 建立了 Cloud App 後,你可以看到目前可以使用的範本,我們將幾個受歡迎的範本放了進來。
- Website - 這會建立一個 ASP.NET 網站,並且搭配一個 Application Insights。
- Website + SQL - 這個範本會建立一個 ASP.NET 網站、一個 Azure 上的 SQL 伺服器、一個 SQL 資料庫、以及一個 Application Insights 作監控。
在預覽階段,現在只有這兩個範本,之後會逐漸增加像是快取、儲存體、虛擬機器等等。
接下來我們會以 Website 範本來示範步驟。
Cloud App 解決方案
當 Cloud App 的方案建立完成後,你會看到兩個專案:ASP.NET 網站、以及一個新的專案類別 -- Azure Resource Manager Deployment,名為 MyAzureCloudApp.Deployment,這個專案裡面包含一個部署檔案(WebSite.json)、一個參數範本(WebSite.param.dev.json)、還有一個 PowerShell script(Publish-AzureResourceGroup.ps1)可以將資源部署到 Azure。
接下來我會解釋這些檔案的細節:
- 這個部署的專案包含了資源的定義、參數、還有一個可以部署到 Azure 的 PowerShell script,接下來你就會看到可以在這個專案上右鍵選擇部署你所定義的資源。
- WebSite.json 檔案是定義部署的資源,所以你可以想像,我們要建立一個網站,這個檔案的內容就是定義要建立網站所需要的資源,稍後我們會看到細節。
- WebSite.param.dev.json 檔案包含了所有部署的參數,像是網站名稱等等,都是寫在這個檔案裡。
建立我的 Azure 資源 - 使用對話盒
部署資源到 Azure 上的主控方案的方式有很多種,最簡單的方法就是在部署的專案上按右鍵,選擇「Deploy to Resource Group」,接下來會顯示一個 Deploy to Resource Group 的對話盒。
我們需要一個 Azure Resource Group,裡面包含我們 Web 應用程式的所有資源,點擊 Resource Group combo box,選擇 Create New。
接著你可以設定一個 Resource group name(這裡我設定 MyAzureCloudApp),然後設定資料中心的區域,接下來按下 Create 按鈕後,就會開始建立你的主控方案。
確定已經選了部署檔案 (website.json)、參數檔案(website.param.dev.json)、還有一個儲存體帳號,如果你還沒有建立過儲存體帳號,可以參考這篇文章來建立。
接下來按下「Edit Parameters」按鈕,可以來設定網站名稱、網站 Hosting Plan、網站資料中心等等,就像這樣:
siteName 這個參數表示你網站的名稱;hostingPlanName 表示 Web Hosting Plan 的名稱,Hosting plan 代表了網站可以用到多少容量及功能;siteLocation 則表示網站會放在哪個資料中心,可能會是 West US 或 East Asia 等 Azure 在全世界的資料中心位置;而 sku 參數這裡我們設為預設值(Default)或是免費(Free),它代表了使用 Azure 網站服務的價格方案,所以其它的選項有共享(Shared)、基本(Basic)以及標準(Standard);而 workerSize 這裡我們保留 0 的設定,它代表網站服務所使用的機器規模(0 = 小, 1 = 中, 2 = 大),在這個例子裡,因為我們 sku 選擇了 Free,所以 workerSize 的設定就不重要了(因為免費的方案只能用小的機器規模),如果想要用更大的機器規模,那 sku 就必須要選擇基本或標準。
當你設定完所有的參數後,按下 Deploy 的按鈕,你的主控方案以及資源就開始部署到 Azure 上了!你可以在預覽的管理介面上看到部署的結果:
而且完成部署後,你也會發現參數的設定都已經保存在 WebSite.param.dev.json 檔案裡了:
發佈我們的網站應用程式
現在我們已經部署了 MyAzureCloudApp 的主控方案,接下來就可以發佈網站應用程式了,回到方案總管,在 ASP.NET Web 專案按右鍵選擇發佈(Publish...) :
接下來會啟動網站發佈精靈,接著會提示你選擇部署的目標,這時要選擇 Microsoft Azure Websites 為發佈目標。
接著會列出帳號下所有的 Azure Websites,這時就選擇剛才建立的網站資源:
接下來,網站發佈精靈會完成所有發佈網站要做的事,所以你只需要按下發佈(Publish) 的按鈕即可。等到發佈完成,瀏覽器開起來順利看到網站的結果,就大功告成了。而接下來,我們可以看看另外一種部署 Azure 主控方案以及資源的方式。
部署 Azure 資源 - 使用 PowerShell
另一個部署 Azure 主控方案以及資源的方式就是使用 PowerShell,在產生的專案中也可以看到一個 PowerShell 的 script(Publish-AzureResourceGroup.ps1),這個 script 會使用最新的 Azure PowerShell (版本 0.8.3 以上)來部署主控方案以及資源。
在執行這個 script 之前,你要確認 WebSite.param.dev.json 檔案是不是已經定義好正確的參數,注意以下的擷圖我已經將網站名稱改為 mattsAwesomeSite,當然你也可以改成你喜歡的名稱,我之所以要這麼做是為了確認它會幫我建立一個新的網站。
你也可以在 Visual Studio 中打開 Publish-AzureResourceGroup.ps1 檔案來瀏覽或編輯這個 script 的內容,或是在檔案上按右鋌,選擇 Open with PowerShell ISE 來執行它:
如果這個步聚發生了問題,你可以用以下的方式來確認是否能排除問題:
- 是否已安裝 Azure PowerShell呢?(版本要 0.8.3 以上)
- 如果沒執行過 PowerShell 相關的操作,那可能需要設定執行原則來確保 PowerShell script 的執行。在 PowerShell 中執行 "Set-ExecutionPolity RemoteSigned" 來允許 PowerShell 執行遠端已簽署的 script(注意:這個操作需要管理者權限)。
- 確認已經在 Azure PowerShell 下註冊你的 Azure 訂閱帳戶了,若尚未註冊,請在 Azure PowerShell 中執行 "Add-AzureAccount" 的命令來照著步驟指示完成註冊。
- 確認 Azure 帳戶下有儲存體帳戶,如果沒有,請先建立一個。或是可以直接在 Azure PowerShell 裡操作:
- 使用 "Set-AzureSubscription -CurrentStorageAccountName '你的儲存體帳戶'" 的指令來設定
- 或是在部署時加入參數(修改 Publish-AzureResourceGroup.ps1),像是這樣: "New-AzureResourceGroup ..... -StorageAccountName '你的儲存體帳戶'"
若 script 順利執行,可能會先看到要你挑選資料中心的提示:
接著你便能看到它正在部署的訊息:
這個 script 可以幫助你建立一個 Azure 主控方案,並且以 WebSite.json 以及 WebSite.param.dev.json 作為參數來進行部署工作。而當它完成工作後,你可以到新版的管理界面中看到是否建立了正確的主控方案。
總結
在這篇文章中我們宣佈了 Azure Resource Manger Tool 的預覽版釋出,也示範了如何以這個工具來建立及部署主控方案,建議你可以試試看這個工具是否幫助你減輕了部署工作的負擔。