Como parametrizar ficheiros de configuração no Service Fabric

Este artigo mostra-lhe como parametrizar um ficheiro de configuração no Service Fabric. Se ainda não estiver familiarizado com os principais conceitos de gestão de aplicações para vários ambientes, leia Gerir aplicações para vários ambientes.

Procedimento para parametrizar ficheiros de configuração

Neste exemplo, vai substituir um valor de configuração através de parâmetros na implementação da aplicação.

  1. Abra o <ficheiro myService>\PackageRoot\Config\Settings.xml no projeto de serviço.

  2. Defina um nome e valor de parâmetro de configuração, por exemplo, o tamanho da cache igual a 25, ao adicionar o seguinte XML:

     <Section Name="MyConfigSection">
       <Parameter Name="CacheSize" Value="25" />
     </Section>
    
  3. Guarde e feche o ficheiro.

  4. Abra o <ficheiro myApplication>\ApplicationPackageRoot\ApplicationManifest.xml .

  5. No ficheiro ApplicationManifest.xml, declare um parâmetro e um valor predefinido no Parameters elemento . Recomenda-se que o nome do parâmetro contenha o nome do serviço (por exemplo, "MyService").

     <Parameters>
       <Parameter Name="MyService_CacheSize" DefaultValue="80" />
     </Parameters>
    
  6. ServiceManifestImport Na secção do ficheiro ApplicationManifest.xml, adicione um ConfigOverrides elemento eConfigOverride, referenciando o pacote de configuração, a secção e o parâmetro .

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

Nota

No caso de adicionar uma ConfigOverride, o Service Fabric escolhe sempre os parâmetros da aplicação ou o valor predefinido especificado no manifesto da aplicação.

Aceder a configurações parametrizadas no código

Pode aceder à configuração no seu ficheiro settings.xml programaticamente. Vejamos, por exemplo, o seguinte ficheiro XML de configuração:

<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>     

Utilize o seguinte código para aceder aos 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);
}

Aqui Parameter.Name estará MyParameter e Parameter.Value será Value1

Passos seguintes

Para obter informações sobre outras capacidades de gestão de aplicações disponíveis no Visual Studio, veja Gerir as suas aplicações do Service Fabric no Visual Studio.