在完成Cloud Application的開發也完成本地的測試後,我們就可以將應用程式發行到雲端環境了,當然,使用者必須要先申請到Windows Azure Platform的帳戶,然後登入到Windows Azure Management Portal建立新的主機服務(Hosted Service),才可以進行上傳的工作。
在完成Cloud Application的開發也完成本地的測試後,我們就可以將應用程式發行到雲端環境了,當然,使用者必須要先申請到Windows Azure Platform的帳戶,然後登入到Windows Azure Management Portal建立新的主機服務(Hosted Service),才可以進行上傳的工作,而部署應用程式的方式又分兩種:
- 手動上傳(Manual Deploy):由Visual Studio或cspack.exe產生封裝檔後,手動自Windows Azure Management Portal上傳部署。
- 自動上傳(Auto Deploy):由Visual Studio的發行功能自動上傳封裝檔。亦可以透過服務管理APIs來操作RDFE進行自動部署。
不過,在部署前,我們要先做一點準備。
首先,我們進入Windows Azure Management Portal中,按下工具列上的『新增託管服務』:
然後填入必要的資料,包含服務名稱、URL首碼、選擇地區等,其中URL首碼必須是全球唯一的識別碼,它也是Windows Azure Platform賦與應用程式的DNS名稱之一,採先搶先贏制,所以如果有好名字又沒被註冊走的話就要快點先登記,服務註冊是不用錢的。而地區會決定應用程式會部署到哪個資料中心,以台灣來說可選擇東南亞(新加坡)或東亞(香港),不過最終還是會取決於應用程式的使用者位置來決定,因為資料中心離使用者太遠的話,網路延遲(Network Latency)會很高。最後,如果只是想登記主機但不部署的話,請將『不部署』打勾後,按『確定』。
完成後會被帶入主機服務的管理區,讀者就可以看到新的主機服務出現在管理區內:
接著我們選擇在畫面左邊的『管理憑證』:
讀者可以看到目前已有的管理憑證(Management Certificates),它在自動部署的工作上扮演很重要的角色,所有透過服務管理APIs的呼叫都要由它來認證,而管理憑證並沒有要求一定要使用商用CA廠商核發的憑證,所以使用者可以使用makecert.exe來產生自己的.cer檔案後,上傳到Windows Azure Platform,然後在Visual Studio中加入這張憑證,就可以使用在自動部署的程序上了,當然,讀者也可以要求Visual Studio自動產生,方法很簡單,只要在Visual Studio開啟Cloud專案(例如我們在第九天所寫的First Cloud Application),然後在Cloud專案上按右鍵,選『發行』,於Windows Azure發行設定精靈中,展開認證的下拉式選單,按下『加入』:
然後於Windows Azure專案管理驗證對話盒中,展開『建立或選取現有憑證以進行驗證』的下拉式選單,選『建立』:
然後給憑證一個名稱:
此時憑證就會被新增到Visual Studio中,然後按下畫面中的『複製完整路徑』,憑證檔(.cer)的實體路徑會被複製到剪貼簿:
接著回到Windows Azure Management Portal的管理憑證的畫面,按下左上方的『加入憑證』:
然後按『瀏覽』,將剛才複製的路徑貼到檔案路徑中,按『開啟舊檔』:
此時憑證檔就會加到檔案欄位中,按『確定』:
憑證檔就會上傳到Windows Azure Platform:
然後選擇上方的訂用帳戶,此時右邊屬性(預設會展開,如果沒有展開請將它展開)中會出現訂用帳戶ID(Subscription ID),請選取它並按CTRL+C複製:
然後回到Visual Studio,貼在訂用帳戶ID的欄位中,然後按『確定』,此時Visual Studio會認證這個帳戶,成功的話會回到Windows Azure發行設定對話盒中,即可在認證欄看到剛才上傳的憑證。
接著回到Windows Azure Management Portal,選擇『儲存體帳戶』,並按上方工具列的『新增儲存體帳戶』。
和Hosted Service類似,儲存體帳戶一樣要有一個URL首字,這個首字一樣要是全球唯一的。然後決定要存放的地區,在此請注意一件事,在Windows Azure Platform的計費標準中,如果Hosted Service和儲存體不在同一座資料中心的話,在資料中心間的網路傳輸費用要由使用者支付,所以請將Hosted Service和儲存帳戶設立在同一個資料中心內。
然後按『確定』,之後即可在管理介面內看到這個帳戶:
這些都完成後,我們接下來就可以直接做部署了。
Reference: