0

我怎麼可能把檢查到構建,以確保無效VM大小不小心上傳?如何限制Azure中的WebRole實例大小?

背景:我最近意識到在Azure上無意間將Azure WebRole實例VM大小配置爲「昂貴」選項是多麼容易。

冒着出現非常愚蠢的風險,對於那些有興趣的人,這就是我是如何做到的......我正在探索Visual Studio中WebRole的設置,而且我必須更改默認的單個'特」(AO)虛擬內存大小到多個‘海’(A4),當未來部署,導致我的使用跳躍到許多美元一天,並很快用完Azure的信貸...衛生署!

它讓我思考如何將支票放入構建以確保無意中上傳無效的VM大小?

回答

0

在考慮了各種powershell和azure api方法後,我決定最快最容易的方法是在Cloud Service項目(具有.csdef文件的項目)上添加預構建事件,如下所示...

for /F "tokens=5 delims=<>= " %%n in ('findstr "vmsize=" $(ProjectDir)ServiceDefinition.csdef') do (if "ExtraSmall"==%%n (exit 0) else (exit 1)) 

就是這樣!

對於那些誰想要知道它是如何工作......這個預生成事件是可以直接放置在項目的前期建設活動,在一行命令行/批處理文件命令。它打開了ServiceDefinition.csdef文件並查找包含文本行「vmsize=」。這將返回以下行...

<WebRole name="WCFServiceWebRole1" vmsize="ExtraSmall"> 

然後,使用以下字符作爲分隔符(<,>,=,{空間}),它需要從該線,在這種情況下爲我們提供了第五令牌...

"ExtraSmall" 

......然後,它比較對文本字符串「特」這個值,並返回ERRORLEVEL 0,如果它匹配,或ERRORLEVEL 1如果不是。返回錯誤級別1未能構建和從導致錯誤的大小VM從被部署在天青停止任何後續包和部署。

+0

**更新:**在新Azure的門戶網站,有一個複選框,它說......允許更新,如果角色的大小改變,或者如果角色的數量變化。如果這個選項沒有被選中,那麼這也會阻止VM大小被意外更改。但我確實喜歡在構建階段捕捉它,所以我認爲我將要離開預構建事件。 – controlbox