2017-04-20 33 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/ –

相关问题