it-swarm.com.ru

Где хранить значения конфигурации в приложении фабрики Azure Service

Я работаю над реализацией Azure Service Fabric Reliable Actor. Любая идея/ссылка о том, где можно сохранить значение конфигурации (например, строку подключения к БД) и как получить к нему доступ в коде.

17
Pratik Mehta

Приложение Service Fabric состоит из пакета кода, пакета конфигурации и данных ( https://Azure.Microsoft.com/en-gb/documentation/articles/service-fabric-application-model/ ). 

Вы можете использовать пакет конфигурации для хранения и извлечения любого типа пар ключ-значение, например, например. Строка подключения. Посмотрите эту статью https://Azure.Microsoft.com/en-us/documentation/articles/service-fabric-manage-multiple-environment-app-configuration/ для получения дополнительной информации.

13
charisk

Вы можете добавить несколько файлов ApplicationParameters. Просто скопируйте и вставьте то же самое из Cloud.Xml и используйте для нескольких конфигураций среды.

Шаги, чтобы сделать необходимые изменения 

  1. Значения, приведенные в файле Settings.xml, должны быть переопределены в ApplicationManifest.xml при импорте файла ServiceManifest.xml. Ниже приведен код, поддерживающий переопределяющие изменения, добавьте их в ApplicationManifest.xml. 

    а) Сначала добавьте значение параметра по умолчанию 

      <Parameters>
         <Parameter Name="StatelessService1_InstanceCount" DefaultValue="-1" />
         <!-- Default Value is set to Point to Dev Database  -->
         <Parameter Name="DatabaseString"DefaultValue="Server=someserver.database.windows.net\;Database=DbDev;user id=[userid];password=[Password];Trusted_Connection=false;" />
      </Parameters>
    

    б) Затем переопределите его в ServiceManifestImport 

      <ServiceManifestImport>
              <ServiceManifestRef ServiceManifestName="StatelessServicePkg" 
                      ServiceManifestVersion="1.0.0" />          
          <ConfigOverrides>
               <ConfigOverride Name="Config">
                    <Settings>
                         <Section Name="DatabaseConnections">
                                 <Parameter Name="DbString" Value="[DatabaseString]" />
                        </Section>
                   </Settings>
             </ConfigOverride>
        </ConfigOverrides>
      </ServiceManifestImport>
    
  2. Приведенное выше изменение кода переопределит следующий код в файле settings.xml. 

    <Section Name="DatabaseConnections">
        <Parameter Name="DbString" Value="Server=someserver.database.windows.net\;Database=DbDev;user id=[userid];password=[Password];Trusted_Connection=false;" />
    </Section> 
    
  3. В целом, когда приложение развернуто, значения в ApplicationParameter DevParam.xml или QaParam.xml или ProdParam.xml превысят все значения настроек. 

     <Parameters>
         <Parameter Name="StatelessService1_InstanceCount" Value="-1" />
              <Parameter Name="DatabaseString" Value="Server=someserverqa.database.windows.net\;Database=DbQA;user id=[userid];password=[Password];Trusted_Connection=false;" />
     </Parameters>
    
2
user3530857

В дополнение к вышеприведенной информации важно знать порядок, в котором ASF переопределяет настройки приложения:

Service Fabric всегда выбирает из файла параметров приложения сначала (если указан), затем манифест приложения и, наконец, пакет конфигурации ( источник )

Для получения дополнительной информации: http://www.binaryradix.com/2016/10/reading-from-configuration-within-Azure.html

1
Rotem Varon