Service Fabric来宾可执行配置文件夹



我正试图将Nginx作为反向代理部署到我的Service Fabric集群中。我想把nginx.conf文件放在config目录中,把nginx.exe放在code目录中。

如何获取config目录中nginx.conf文件的路径?我尝试使用相对路径,但配置目录的名称在部署时似乎发生了更改。例如,在我的服务清单中:

<ExeHost>
    <Program>nginx.exe</Program>
    <Arguments>-c ../Config/nginx.conf</Arguments>
    <WorkingFolder>CodeBase</WorkingFolder>
  </ExeHost>

但是,当它被部署时,Config目录被重命名为NginxPkg.Config1.0.0

包路径在部署时确定。在您的情况下,您应该将配置文件放在代码包本身中。

各种包的路径应该在运行时从CodePackageActivationContext获得。如果来宾可执行文件未使用Service Fabric API,则这是不可能的。我们正在考虑为您提供一种方法,通过环境变量来寻址/访问CodePackageActivationContext的一些重要部分。

您可以使用批处理文件解析SF文件中的信息,然后运行程序。

例如,以下PowerShell脚本检索配置包的路径(假设只有一个配置包):

$package = [xml] (Get-Content "${env:Fabric_Folder_Application}${env:Fabric_ServicePackageName}.Package.Current.xml");
echo ("${env:Fabric_Folder_Application}" + '' + "${env:Fabric_ServicePackageName}" + '.' + 
       $package.ServicePackage.DigestedConfigPackage.ConfigPackage.Name + '.' + 
       $package.ServicePackage.DigestedConfigPackage.ConfigPackage.Version);

请注意,这些文件的格式不是公开的,可能会在未来的运行时更改。

最新更新