Compartir a través de


Cómo parametrizar archivos de configuración en Service Fabric

En este artículo se muestra cómo parametrizar un archivo de configuración en Service Fabric. Si aún no está familiarizado con los conceptos básicos de administración de aplicaciones para varios entornos, lea Administración de aplicaciones para varios entornos.

Procedimiento para parametrizar archivos de configuración

En este ejemplo, invalida un valor de configuración mediante parámetros en la implementación de la aplicación.

  1. Abra el <archivo MyService>\PackageRoot\Config\Settings.xml en su proyecto de servicio.

  2. Establezca un nombre y un valor de parámetro de configuración, por ejemplo, el tamaño de la memoria caché igual a 25; para ello, agregue el siguiente XML:

     <Section Name="MyConfigSection">
       <Parameter Name="CacheSize" Value="25" />
     </Section>
    
  3. Guarde y cierre el archivo.

  4. Abra el archivo <MyApplication>\ApplicationPackageRoot\ApplicationManifest.xml.

  5. En el archivo ApplicationManifest.xml, declare un parámetro y un valor predeterminado en el Parameters elemento . Se recomienda que el nombre del parámetro contenga el nombre del servicio (por ejemplo, "MyService").

     <Parameters>
       <Parameter Name="MyService_CacheSize" DefaultValue="80" />
     </Parameters>
    
  6. En la sección ServiceManifestImport del archivo ApplicationManifest.xml, agregue un elemento ConfigOverrides y un elemento ConfigOverride, haciendo referencia al paquete de configuración, la sección y el parámetro.

     <ConfigOverrides>
       <ConfigOverride Name="Config">
           <Settings>
             <Section Name="MyConfigSection">
                 <Parameter Name="CacheSize" Value="[MyService_CacheSize]" />
             </Section>
           </Settings>
       </ConfigOverride>
     </ConfigOverrides>
    

Nota:

En el caso de agregar configOverride, Service Fabric siempre elige los parámetros de la aplicación o el valor predeterminado especificado en el manifiesto de aplicación.

Acceso a configuraciones con parámetros en el código

Nota:

Demasiadas sobreescrituras o demasiado grandes pueden afectar al rendimiento de la API.

En lugar de usar FabricClient.QueryClient.GetApplicationListAsync, capture parámetros mediante el método descrito en esta sección. En el caso de los clústeres con muchas aplicaciones, intente usar valores predeterminados para mejorar el rendimiento. El impacto de los parámetros de aplicación en el rendimiento depende de factores como el tamaño de la máquina virtual, el número de parámetros, el número de aplicaciones y la longitud de los valores.

Puede acceder a la configuración en el archivo settings.xml mediante programación. Tome, por ejemplo, el siguiente archivo XML de configuración:

<Settings
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://schemas.microsoft.com/2011/01/fabric">
	<!-- Add your custom configuration sections and parameters here -->
	<Section Name="MyConfigSection">
		<Parameter Name="MyParameter" Value="Value1" />
	</Section>
</Settings>     

Use el código siguiente para acceder a los parámetros:

CodePackageActivationContext context = FabricRuntime.GetActivationContext();
var configSettings = context.GetConfigurationPackageObject("Config").Settings;
var data = configSettings.Sections["MyConfigSection"];
foreach (var parameter in data.Parameters)
{
  ServiceEventSource.Current.ServiceMessage(this.Context, "Working-{0} - {1}", parameter.Name, parameter.Value);
}

Aquí, Parameter.Name es MyParameter y Parameter.Value es Value1.

Pasos siguientes

Para obtener información sobre otras funcionalidades de administración de aplicaciones que están disponibles en Visual Studio, consulte Administración de aplicaciones de Service Fabric en Visual Studio.