2012-09-01 50 views
-1

我想在Azure中製作工作角色,處理Web角色的一些幕後處理。在網絡角色中,我想上傳一個插件(最有可能的DLL),該插件將成爲工作者角色使用的插件。我可以爲Azure工作者角色創建插件嗎?

安全性如何?如果我讓第三方人員上傳一個dll到我的天藍工作者角色。我可以做任何事情來限制它可以做的事情嗎?如果他們能夠控制管理API或類似的東西,那就不太好了。

我是新來azure和探索,如果它的平臺使用這個項目。

最後一個問題,我注意到我可以遠程桌面我的雲服務。我可以上傳二進制程序並從工作人員角度調用它嗎? (另一種插件)。

回答

1

有幾件事情你可能想看看。假設你的工作者角色是空殼。啓動工作者角色後,您可以啓動一個計時器,每運行X分鐘一次,以獲取blob存儲容器中的最新程序集。

您可以將這些程序集下載到一個文件夾中,並使用MEF來掃描它們並導入實現IWorkerRolePlugin的所有對象(這將是您要創建的自定義接口)。當你想使用插件時,MEF是最好的選擇。你甚至可以創建一個直接與blob存儲容器鏈接的自定義目錄。

現在談談安全部分。在您的工作者角色中,您可以創建一個受限的AppDomain,以確保這些插件不會做任何錯誤。這個代碼應該讓你開始:Restricted AppDomain example

+0

這聽起來像我需要的東西。已經知道MEF,只需要檢查安全性。將dll下載到shell上的一個文件夾也是一個好主意(假設shell只是角色抵制的虛擬機)。 –

+0

如果您決定將程序集下載到文件夾中,請考慮使用LocalResource。 –

+0

Im新到azure,並不確定你在參考本地資源 –

0

聽起來像Lokad.Cloud正是你所需要的。

它有一個執行框架部分,它由能夠運行他們命名的Cloud Service的工作角色組成。它提供了一個Web控制檯,允許您通過上傳程序集來添加新的CloudService實現,並且如果將其配置爲允許Azure自我管理,則還可以通過Web控制檯調整工作程序實例的數量。

+0

作爲上面的解決方案,它看起來像是一個簡單的解決方案來實現這與MEF,因此,我想我會寫我自己的小角色,而不是依靠第三方。感謝提示 –

+0

有道理。但請注意,它是開源的,因此您可以根據自己的需求使用它。 –

相關問題