Где хранить значения конфигурации в приложении Azure Service
Я работаю над реализацией реалистичной реализации Azure Service Fabric. Любая идея/ссылка, где я могу сохранить значение конфигурации (например, строку подключения DB) и как получить доступ к этому в коде.
Ответы
Ответ 1
Приложение 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/.
Ответ 2
Вы можете добавить несколько файлов ApplicationParameters. Просто скопируйте и вставьте то же самое из Cloud.Xml и используйте для нескольких конфигураций среды.
Действия по внесению необходимых изменений
-
Значения, указанные в файле Settings.xml, должны быть переопределены в ApplicationManifest.xml при импорте ServiceManifest.xml.Below - это код, поддерживающий переопределяющие изменения, добавляет их в ApplicationManifest.xml.
a) Сначала добавьте значение параметра по умолчанию
<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>
b) Затем переопределите его в 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>
-
Приведенное выше изменение кода переопределит следующий код в 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>
-
В целом при развертывании приложения значения в 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>