Service Fabric 用 Powershell 部署应用到本地

前置说明

安装 Service Fabric SDK,会在本机 C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK 生成部署脚本,如下图:

用VS创建一个 Service Fabric 应用后,有一个部署脚本,位置在 [应用名]\Scripts\Deploy-FabricApplication.ps1,本文正是用该脚本进行应用部署的,内部会判断是全新部署或更新部署去调用上面对应的脚本。

本文配置文件使用方式是,在 ApplicationParameters中的xml 文件里声明配置变量并赋值,在 ApplicationPackageRoot\ApplicationManifest.xml 中用配置变量进行重写,所以最终的配置都在 ApplicationParameters 目录下。

配置变量不能用点分隔,推荐下划线。

示例:

在 ApplicationParameters\Local.1Node.xml 中配置应用环境。

在 ApplicationPackageRoot\ApplicationManifest.xml 中定义应用环境变量,这里变量名可以与 ApplicationParameters\Local.1Node.xml 中定义的变量名要相同。

在 ApplicationPackageRoot\ApplicationManifest.xml 的 Actor 中重写该配置

在 XXXActor\PackageRoot\Config\Setting.xml 中接收配置

 

部署流程

VS右键将应用打包,打包输出目录可以在VS Output窗口查看。

 

打包后目录结构如下所示:

将要部署的应用中的配置文件和部署脚本也复制到打包目录,组成如下结构:

 

用管理员权限打开Powershell,切换到路径 SfPkg下,执行以下命名:

连接到本地集群:

Connect-ServiceFabricCluster localhost:19000

或通过修改脚本跳过主动连接集群的步骤,只需要在 Deploy-FabricApplication.ps1 如下位置,增加 $global:clusterConnection = $clusterConnection

 

部署应用:

.\Deploy-FabricApplication.ps1 -ApplicationPackagePath .\pkg -PublishProfileFile .\PublishProfiles\Local.1Node.xml -DeployOnly:$false -ApplicationParameter:@{} -UnregisterUnusedApplicationVersionsAfterUpgrade $false -OverrideUpgradeBehavior 'None' -OverwriteBehavior 'SameAppTypeAndVersion' -SkipPackageValidation:$false -ErrorAction Stop

部署顺利就可以看到如下结果:

到这,Service Fabric Application 用 Powershell 读取指定配置文件部署到本地集群的方案就结束了。

 

posted @ 2018-08-08 17:59  AI柚子  阅读(639)  评论(0编辑  收藏  举报