Estoy trabajando en la implementación de Azure Service Fabric Reliable Actor. Cualquier idea / enlace sobre dónde puedo almacenar el valor de Configuración (por ejemplo, la cadena de conexión DB) y cómo acceder a eso en el código.

17
Pratik Mehta 26 ene. 2016 a las 13:52

3 respuestas

La mejor respuesta

Una aplicación de Service Fabric consta del paquete de código, un paquete de configuración y los datos (https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-application-model/).

Puede usar el paquete de configuración para almacenar y recuperar cualquier tipo de pares clave-valor que necesite, p. una cadena de conexión. Eche un vistazo a este artículo https://azure.microsoft.com/en-us/documentation/articles/service-fabric-manage-multiple-environment-app-configuration/ para obtener más información.

14
charisk 26 ene. 2016 a las 11:37

Además de la información anterior, es importante conocer el orden en el que ASF anula la configuración de la aplicación:

Service Fabric siempre elegirá del archivo de parámetros de la aplicación primero (si se especifica), luego el manifiesto de la aplicación y finalmente el paquete de configuración (fuente)

Para más información: http://www.binaryradix.com/2016/ 10 / reading-from-configuration-within-azure.html

2
Rotem Varon 8 mar. 2018 a las 18:48

Puede agregar varios archivos ApplicationParameters. Simplemente copie y pegue el mismo desde Cloud.Xml y utilícelo para múltiples configuraciones de entorno.

Pasos para realizar los cambios necesarios

  1. Los valores dados en Settings.xml deben anularse en ApplicationManifest.xml cuando se importa ServiceManifest.xml. Debajo está el código que admite los cambios primordiales y los agrega en ApplicationManifest.xml.

    a) Agregue primero el valor predeterminado del parámetro

      <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) Luego anótelo en 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. El cambio de código anterior anulará el siguiente código en 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. En general, cuando se implementa la aplicación, los valores en ApplicationParameter DevParam.xml o QaParam.xml o ProdParam.xml superarán todos los valores de configuración.

     <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>
    
3
user3530857 20 dic. 2017 a las 12:53