Динамически изменяемые переменные среды Service Fabric - PullRequest
1 голос
/ 13 октября 2019

У меня есть служба в Service Fabric, содержащая переменную среды, определенную в манифесте службы, которую я хочу динамически изменять после развертывания. Каков наилучший способ сделать это?

Насколько я могу судить, это обязательно включает обновление приложения и создание новой версии для службы.

1 Ответ

2 голосов
/ 14 октября 2019
  1. Укажите переменные среды и значения в манифестах вашего сервиса. Если у вас уже указаны переменные окружения, возможно, они уже есть.
<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». Это будет течь вниз и приведет к изменению значения переменной среды, которое видит служба. Обратите внимание, что для изменения переменных среды требуется перезапуск процесса.

Соответствующие документы: 1 , 2 , 3 , 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...