Como parametrizar os arquivos de configuração no Service Fabric

Este artigo mostra como parametrizar os arquivos de configuração no Service Fabric. Caso ainda não esteja familiarizado com os conceitos básicos de gerenciamento de aplicativos para vários ambientes, leia Gerenciar aplicativos para vários ambientes.

Procedimento para parametrizar arquivos de configuração

Neste exemplo, você deve substituir um valor de configuração usando os parâmetros na implantação do aplicativo.

  1. Abra o arquivo <MyService>\PackageRoot\Config\Settings.xml em seu projeto de serviço.

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

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

  4. Abra o arquivo <MyApplication>\ApplicationPackageRoot\ApplicationManifest.xml.

  5. No arquivo ApplicationManifest.xml, declare um parâmetro e um valor padrão no elemento Parameters. É recomendado que o nome do parâmetro contenha o nome do serviço (por exemplo, "MyService").

     <Parameters>
       <Parameter Name="MyService_CacheSize" DefaultValue="80" />
     </Parameters>
    
  6. Na seção ServiceManifestImport do arquivo ApplicationManifest.xml, adicione um elemento ConfigOverrides e ConfigOverride, fazendo referência ao pacote de configuração, à seção e ao parâmetro.

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

Observação

No caso em que você adicionar um ConfigOverride, o Service Fabric sempre escolherá os parâmetros do aplicativo ou o valor padrão especificado no manifesto do aplicativo.

Acessar configurações parametrizadas no código

É possível acessar de modo programático a configuração no arquivo settings.xml. Tome como exemplo o seguinte arquivo 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>     

Use o seguinte código para acessar os 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 vai ser MyParameter, e Parameter.Value, Value1

Próximas etapas

Para obter informações sobre outras funcionalidades de gerenciamento de aplicativo disponíveis no Visual Studio, confira Gerenciar seus aplicativos do Service Fabric no Visual Studio.