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 读取指定配置文件部署到本地集群的方案就结束了。