2012-04-16 61 views
2

目前,我們在Azure上運行UI Web角色和Web服務Web角色(WCF REST)。每個角色包含2個實例(用於負載平衡和滿足SLA請求)。 UI Web角色和Web服務Web角色在同一個訂閱中,但在不同的部署中。我們不想合併代碼庫(可維護性等)。所以UI層位於xyz.cloudapp.net上,Web服務層位於abc.cloudapp.net上。Azure端點 - 不同部署

當前,要求將Web服務Web角色設置爲內部端點,即只能由UI層訪問。有關配置內部端點並從不同部署訪問它的文獻不太清楚。

我假設兩個不同的角色需要成爲單個部署的一部分才能工作。這可以在不影響部署的情況下完成嗎?任何正確的方向指針將不勝感激。

回答

2

內部端點只能在單個部署中訪問,並且不會通過負載平衡器進行路由(因此,如果在內部端點上有兩個wcf服務實例可訪問,則需要在實例之間分配呼叫)。當然,這需要您將Web角色和wcf Web角色放入同一個部署中。

您可能想考慮服務總線,以便從您的Web角色實例中獲得wcf服務的安全方式。或者...通過輸入終端暴露wcf服務,但保護服務。

+0

服務總線中繼是否會從Azure服務接口工作?(即,是否可以通過Azure託管的IIS應用*啓用服務總線偵聽器的自動啓動)? – SliverNinja 2012-04-16 14:13:27

1

您是否考慮過使用ACS(Access Control Services)來限制您的WCF端點訪問using claims-based authentication

您可以提供多種保護方案via WCF bindings

Internal Endpoints只能與同一部署中的角色間通信。如果您有2個單獨的部署(abc.cloudapp.netxyz.cloudapp.net,內部端點將不會幫助您)。

+2

不正確:內部端點會暴露給部署中所有角色的所有實例。 – 2012-04-16 14:00:15

+0

@DavidMakogon - 感謝您的糾正。上面編輯。 – SliverNinja 2012-04-16 14:08:33

1

這裏有一個方法,我喜歡稱之爲虛擬DMZ是前人的精力滿足您的需求:http://brentdacodemonkey.wordpress.com/?s=virtual+dmz

它利用ACS和WCF綁定允許您創建訪問控制輸入端點(然後將其負載平衡)。當然,如果你不想要強大的東西,你可以只使用標準的舊的WCF相互認證方案。

這就是說,大衛說得很好。內部端點只能通過一個部署的服務訪問。這是因爲該服務表示一個隔離邊界(思考虛擬局域網分支),並且可以從該邊界之外尋找唯一的輸入端點。