在Azure Service Fabric应用程序中存储配置值的位置

时间:2016-01-26 10:52:41

标签: azure azure-service-fabric

我正在开发Azure Service Fabric Reliable Actor实现。任何想法/链接在哪里可以存储配置值(例如数据库连接字符串)以及如何在代码中访问它。

3 个答案:

答案 0 :(得分:13)

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/

答案 1 :(得分:2)

您可以添加多个ApplicationParameters文件。只需从Cloud.Xml复制并粘贴相同内容即可用于多种环境配置。

进行必要更改的步骤

  1. 在导入ServiceManifest.xml时,需要在ApplicationManifest.xml中覆盖Settings.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>
    
  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 :(得分:1)

除上述信息外,了解ASF覆盖应用程序设置的顺序非常重要:

  

Service Fabric将始终从应用程序参数文件中进行选择   首先(如果指定),然后是应用程序清单,最后是   配置包(source

欲了解更多信息: http://www.binaryradix.com/2016/10/reading-from-configuration-within-azure.html

相关问题