动态更改 Service Fabric 环境变量



我在 Service Fabric 中有一个服务,其中包含服务清单中定义的环境变量,我希望在部署后动态更改该变量。最好的方法是什么?

据我所知,这必然涉及更新应用程序并为服务创建新版本。

  1. 在服务清单中指定环境变量和值。如果您已经指定了环境变量,则可能已经指定了这些变量。
<CodePackage Name="MyCode" Version="CodeVersion1">
<EnvironmentVariables>
<EnvironmentVariable Name="MyEnvVariable" Value="DefaultValue"/>
<EnvironmentVariable Name="HttpGatewayPort" Value="19080"/>
</EnvironmentVariables>
</CodePackage>
  1. 在应用程序清单中添加环境变量替代
<ServiceManifestImport>
<ServiceManifestVersion="1.0.0" />
<EnvironmentOverrides CodePackageRef="MyCode">
<EnvironmentVariable Name="MyEnvVariable" Value="OverrideValue"/>
</EnvironmentOverrides>
</ServiceManifestImport>
  1. 在应用程序清单中,将环境变量值指定为应用程序参数,而不是特定的重写值。
<ServiceManifestImport>
<ServiceManifestVersion="1.0.0" />
<EnvironmentOverrides CodePackageRef="MyCode">
<EnvironmentVariable Name="MyEnvVariable" Value="[MyEnvVariableOverride]"/>
</EnvironmentOverrides>
</ServiceManifestImport>

<Parameters>
<Parameter Name="MyEnvVariableOverride" DefaultValue="DefaultOverrideValue" />
</Parameters>
  1. 执行应用程序升级,通过ApplicationParameters哈希表更改应用程序参数(在 PS 中 - 参数名称到参数值的映射(。例如,您可以将"MyEnvVariableOverride"设置为"FinalValue"。这将向动,并导致服务看到的环境变量值发生更改。请注意,更改环境变量需要重新启动进程。

相关文档:1、2、3、4

最新更新