2017-04-20 50 views
0

我的azure SF應用程序有兩個服務。將應用程序部署到本地羣集時,是否可以只部署其中一項服務,而不是兩種(服務)?控制Azure SF應用程序中的服務

+0

基本上,我想要動態地控制應與應用程序,如一個運行時參數的程序的東西被部署該服務。 – cherry

+0

我建議您通過點擊底部的編輯 –

回答

0

是的,你可以很明確地對此進行控制。

在你ApplicationManifest你增加了一些DefaultServices的,這些都是從添加到您的應用服務自動生成。當您從Visual Studio(或VSTS)進行部署時,您(隱式)使用自動添加到您的應用程序項目中的Deploy-FabricApplication.ps1腳本。這個腳本同時做很多事情。即:

  1. 讀取並分析發行人的個人資料文件,以獲得所選擇的目標

  2. 上傳新的圖片版本的集羣形象店的參數值(例如雲計算,Local1Node,Local2Node等)爲ApplicationType使用新的版本號。

  3. 創建或升級基於新的圖像和版本上的應用程序實例,並創建或ApplicationManifest升級實例每個DefaultService現在

,你可以做所有這些步驟你自己,特別是,您可以選擇要爲其啓動實例的服務。

您可以使用該PowerShell (or CLI) cmdlets或使用FabricClient通過.NET代碼。

你需要做的則是(對PowerShell的,但對於FabricClient類似)是:

所有雖然這除了使用提供的Deploy-FabricApplication.ps1外,還有很多工作要做,它使您可以完全控制部署服務的方式和時間。例如,如果您想爲同一羣集上的同一應用程序運行多個租戶,或者在同一羣集上運行同一應用程序的多個版本/環境(例如,在同一羣集上運行開發和測試),則也需要執行此操作簇)

+0

將信息添加到您的問題感謝您的詳細步驟和鏈接!所以,當涉及到創建實例時,我想知道在發佈配置文件中是否可以保持服務的實例數等於「0」(使其他服務的實例數爲1),以便不部署某個特定的服務,即使它存在於VS應用程序項目中。 – cherry

+0

我不確定這是否會起作用,可能會有一個阻止它的檢查,儘管我沒有嘗試過這種特定方法。然而,有一個檢查可以防止你創建比實例更多的實例,所以可能會有一個這樣的實例...你不能使用同樣的方法來實現有狀態的服務,但是你需要確定分區在部署時計算服務。您不應該在部署之後嘗試更改它,因爲這會更改現有分區中該服務的狀態保持不變的方式。 – yoape

+0

您也可以在沒有默認服務的情況下部署應用程序,然後需要您在創建應用程序後明確創建服務。看看這個例子:https://azure.microsoft.com/en-us/resources/samples/service-fabric-dotnet-iot/ –

相關問題