我在Service Fabric中有一个服务,其中包含服务清单中定义的环境变量,我想在部署后进行动态更改。最好的方法是什么?
据我所知,这必然涉及更新应用程序并为服务创建新版本。
<CodePackage Name="MyCode" Version="CodeVersion1">
<EnvironmentVariables>
<EnvironmentVariable Name="MyEnvVariable" Value="DefaultValue"/>
<EnvironmentVariable Name="HttpGatewayPort" Value="19080"/>
</EnvironmentVariables>
</CodePackage>
<ServiceManifestImport>
<ServiceManifestVersion="1.0.0" />
<EnvironmentOverrides CodePackageRef="MyCode">
<EnvironmentVariable Name="MyEnvVariable" Value="OverrideValue"/>
</EnvironmentOverrides>
</ServiceManifestImport>
<ServiceManifestImport>
<ServiceManifestVersion="1.0.0" />
<EnvironmentOverrides CodePackageRef="MyCode">
<EnvironmentVariable Name="MyEnvVariable" Value="[MyEnvVariableOverride]"/>
</EnvironmentOverrides>
</ServiceManifestImport>
和
<Parameters>
<Parameter Name="MyEnvVariableOverride" DefaultValue="DefaultOverrideValue" />
</Parameters>
ApplicationParameters
哈希表更改应用程序参数(在PS中-参数名到参数值的映射)。例如,您可以将“ MyEnvVariableOverride”设置为“ FinalValue”。这将流下来,并导致服务看到的环境变量值发生更改。请注意,更改环境变量需要重新启动进程。