Azure SDK 2.4 新功能

MSDN 電子報9月份客座編輯 Sky Chang 張羽承

Azure SDK 在Azure的開發上,一直扮演著重要的角色,透過Azure SDK的安裝,讓Visual Studio擴充許多操控Azure服務的能力;而到了年中的這時間,Azure SDK也正式邁入2.4這個版本了!!

Azure SDK 2.4主要強化了以下這些功能:

►Virtual Machines : 遠端偵錯32位元的VM、配置虛擬機、包含了動態安裝與管理擴充套件 ( 例如:防毒軟體等… )、創建磁碟狀態的快照 ( 此快照是用來當作映像檔,以利未來快速建立VM,並非一般所認知的快照 )。
►Storage : 可以輕鬆的查看Storage的log、從Visual Studio來查看擁有地理備援且可讀取的Storage (Read-Access Geo-redundant Storage )。
►Cloud Services : 預設使用Express的模擬器、可以設定新的網路功能。

所以,接下來,筆者就帶大家來看看這新版的SDK 2.4!!

 

透過Visual Studio 設定 Virtual Machine

早期要進行Azure上Virtual Machine的設定,通常都要進入Portal來設定,而現在,安裝完SDK 2.4之後,就可以輕鬆地透過Visual Studio設定Virtual Machine的相關設定。

只需要從 [伺服器總管] à [ 虛擬機器] à [ 選擇要設定的VM] à [設定] 就可以進入設定的畫面進行Virtual Machine設定

 

設定的內容就如同Portal一般,筆者就在這邊示範,如何透過Visual Studio新增一個80 Port的端點。

 

首先,選擇 [請選取一個節點] ,接下來選擇Http;如果這邊找不到想使用的節點名稱,也可以先選擇Http,後續再修改成想要的名稱與想開放的Port;最後按下 [加入]

 

完成之後,就可以看到 [公用節點] 多了一個Http,如果這邊不是預期的Port,也可以自行修改,但要特別注意,如果選擇的是 [自動] ,系統則會亂數給一個Port,所以如果已經有想要的Port,那一定要自行去修改;確認無誤後,按下 [更新] ,就會開始更新了。

 

更新的過程中,於 [Microsoft Azure活動紀錄檔] 可以看到目前的狀況。

 

接下來,筆者將示範如何透過Visual Studio來新增新的擴充功能;在早期,Web版本的Portal是沒有提供擴充功能的UI介面讓筆者來控制的,只能透過PowerShell的方式,下指令來使用這擴充功能 ( 目前新版的Portal已經提供擴充功能的UI介面 );那什麼是擴充功能!?,擴充功能是Virtual Machine非常方便的一個功能,我們可以透過擴充功能來擴充Virtual Machine,使Virtual Machine動態的方式加上想要的套件 ( 例如 : 防毒軟體 );所以現在就讓筆者帶著大家來操作此功能。

同樣的,先從下拉式選單選擇想要的功能,這邊筆者選擇 [Microsoft Antimalware] ,也就是防毒軟體;接下來選擇 [加入]

 

同樣的,要按下 [更新] 後才會真的去執行。

 

完成之後,遠端登入,就可以看到防毒軟體已經裝好了。

 

Virtual Machines的快照

Virtual Machines的快照,在Azure上的定義與一般虛擬化的定義有些不同,這邊的快照,指的是透過此功能,能產生出映像檔,以利未來要重新建立相同內容VM的時候,能快速建立;換言之,這種快照,並不是一般虛擬化,利用快照就可以還原到當時情境的那種快照。

雖然是不同的快照意義,但實務上,還是非常有用,舉例來說,筆者可能配置好一台Server的環境,而這個環境未來需要給開發單位重複使用,如果每次都建一台新的VM,再裝上軟體,其實是很消耗時間的,所以透過此快照系統,就可以先建立好一個範本(映像檔),未來透過此映像檔,就可以快速產生想要的VM;接下來,筆者就來使用Visual Studio和SDK 2.4來完成Virtual Machines快照的動作。

在開始前,如果是Windows系統,則必須先在”要快照的那台機器上執行sysprep”( 也就是Azure的VM上執行sysprep );透過sysprep,可以將識別化的資訊給移除掉,也因此,重新建立的VM就如同新的一樣,可以自行輸入帳號、密碼等資訊。

請注意,轉成映像檔的VM,會被刪除掉!!

首先,我們從左下角的 [Windows按鈕] à [Run] à 輸入sysprep

 

 接下來,會跳出如下圖視窗,只要點擊sysprep來執行sysprep程式。

 

接下來,選擇 [Enter System Out-of-Box Experience (OOBE)][Shutdown] ,並且勾選 [Generalize] ,選擇這三個的意思是說,要將此VM的系統資訊一般化,並且將此系統清理成”進入系統全新體驗”,也就是像第一次裝完系統的樣子;而當sysprep完成後,自動關機。

 

 接下來,回到Visual Studio裡面,點擊 [擷取映像]

 

在跳出來的視窗,可以加上映像標籤與描述,並且把 [我已在虛擬機器上執行Sysperp] 勾選起來,確定無誤後,按下擷取即可。

 

 完成之後,可以發現被截取的那台已經被刪除了,但如果要新建新的VM,就可以看到筆者剛剛自行產生的映像。

 

支援讀取存取異地備援儲存體

現在的儲存體,除了可以選擇異地備援外,為了不浪費異地備援的檔案,Azure也支援可以讀取異地備援的儲存體;而現在Visual Studio在安裝了SDK 2.4之後,建立儲存體的地方,也支援了可以選擇 [讀取權限異地備援] 的選項。

 

 
查看儲存體的活動日誌

如果有開啟儲存體Log的功能,那現在透過Visual Studio加上SDK 2.4,就可以輕鬆的在Visual Studio裡面查看到Log的資訊;如下圖,可以透過 $logs目錄下看到詳細的Log資訊。

 

 點進去後,就可以看到目前記錄的Log檔案。

 

 

全新的雲端服務模擬器

SDK 2.4還有一個重大的改革,那就是使用了全新的雲端服務模擬器Emulator Express,並且將此設為新專案的預設值;Emulator Express解決了使用者每次要啟動模擬器時,都需要Administrator的權限;但要注意,目前Emulator Express只支援一個Instance,如要模擬多個Instance,還是需要使用完整的模擬器。

 

雲端服務支援新的網路功能

內部的Load Balancing (ILB)
ILB是Azure上的新功能,提供了內部LB的機制,如下圖;前端透過Port 443進來,第一個對應到的是Azure預設提供的LB機制;但在現實的環境中,除了最前端需要LB外,其實內部也需要LB,就如同下圖,Database tier也有可能是多台Server組合而成,而Web tier與Database tier之間,就是透過ILB。

 

而現在Azure SDK 2.4的版本,也提供了XML的設定格式,讓雲端服務可以設定ILB,如下圖,可以透過 [ServiceConfiguration.Cloud.cscfg] 增加 [NetworkConfiguration] 區段來使用ILB。


接下來,要設定 [ServiceDefinition.csdef] ,並將端點加入到ILB。

 

設定給Role 對外公開的IP

早期有很多人會有固定對外公開IP的需求,而現在也可以透過PowerShell來進行設定;設定完之後,如果雲端服務要使用,也可以透過 [ServiceConfiguration.Cloud.cscfg] 來設定Public IP,如下圖,但別忘記在設定之前必須先透過PowerShell設定Public IP。

 

在Azure Load Balancer設置閒置斷線

最後,SDK 2.4現在也可以在cscfg檔案裡面,針對Web Role或是Work Role,來對閒置過長的連線進行斷線,如下圖設定。

 

或是針對Public IP的部分,也可以透過csdef檔案來進行設定。

 

因篇幅有限,ILB、固定Public IP的詳細資料,有興趣的朋友可以參考附件,筆者就不再這邊多做解說,也請多多見諒。

參考資料

►Announcing release of Visual Studio 2013 Update 3 and Azure SDK 2.4

►Reserved IP Addresses

►設定內部負載平衡集