Jak sparametryzować pliki konfiguracji w usłudze Service Fabric

W tym artykule pokazano, jak sparametryzować plik konfiguracji w usłudze Service Fabric. Jeśli nie znasz jeszcze podstawowych pojęć związanych z zarządzaniem aplikacjami dla wielu środowisk, zobacz Zarządzanie aplikacjami dla wielu środowisk.

Procedura parametryzacji plików konfiguracji

W tym przykładzie zastąpisz wartość ustawień konfiguracyjnych przy użyciu parametrów we wdrożeniu aplikacji.

  1. Otwórz plik <\PackageRoot\Config\Settings.xmlMyService> w swoim projekcie usługi.

  2. Ustaw nazwę i wartość parametru konfiguracji, na przykład rozmiar pamięci podręcznej równy 25, dodając następujący kod XML:

     <Section Name="MyConfigSection">
       <Parameter Name="CacheSize" Value="25" />
     </Section>
    
  3. Zapisz i zamknij plik.

  4. <Otwórz plik MyApplication>\ApplicationPackageRoot\ApplicationManifest.xml.

  5. W pliku ApplicationManifest.xml zadeklaruj parametr i wartość domyślną w elemecie Parameters . Zaleca się, aby nazwa parametru zawierała nazwę usługi (na przykład "MyService").

     <Parameters>
       <Parameter Name="MyService_CacheSize" DefaultValue="80" />
     </Parameters>
    
  6. W sekcji ServiceManifestImport pliku ApplicationManifest.xml dodaj elementy ConfigOverrides oraz ConfigOverride, odwołując się do pakietu konfiguracji, sekcji i parametru.

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

Uwaga

W przypadku, gdy dodajesz ConfigOverride, usługa Service Fabric zawsze wybiera parametry aplikacji lub wartość domyślną określoną w manifeście aplikacji.

Uzyskiwanie dostępu do sparametryzowanych konfiguracji w kodzie

Uwaga

Zbyt wiele lub duże przesłonięcia mogą mieć wpływ na wydajność interfejsu API.

Zamiast używać klasy FabricClient.QueryClient.GetApplicationListAsync, pobierz parametry przy użyciu metody opisanej w tej sekcji. W przypadku klastrów z wieloma aplikacjami spróbuj użyć wartości domyślnych, aby zwiększyć wydajność. Wpływ parametrów aplikacji na wydajność zależy od czynników, takich jak rozmiar maszyny wirtualnej, liczba parametrów, liczba aplikacji i długość wartości.

Dostęp do konfiguracji można uzyskać programowo w pliku settings.xml. Weźmy na przykład następujący plik XML konfiguracji:

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

Użyj następującego kodu, aby uzyskać dostęp do parametrów:

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);
}

Parameter.Name W tym miejscu znajduje się parametr MyParameter i Parameter.Value ma wartość Value1.

Następne kroki

Aby uzyskać informacje o innych funkcjach zarządzania aplikacjami, które są dostępne w programie Visual Studio, zobacz Zarządzanie aplikacjami usługi Service Fabric w programie Visual Studio.