Service Fabric で構成ファイルをパラメーター化する方法
この記事では、Service Fabric で構成ファイルをパラメーター化する方法について説明します。 複数の環境向けにアプリケーションを管理する基本的な概念にまだ精通していない場合は、「複数の環境向けのアプリケーションの管理」を参照してください。
構成ファイルをパラメーター化する手順
この例では、アプリケーションの展開でパラメーターを使って構成値をオーバーライドします。
サービス プロジェクト内の <MyService>\PackageRoot\Config\Settings.xml ファイルを開きます。
次の XML を追加して、構成パラメーターの名前と値を設定します (たとえば、キャッシュ サイズ = 25)。
<Section Name="MyConfigSection"> <Parameter Name="CacheSize" Value="25" /> </Section>
ファイルを保存して閉じます。
<MyApplication>\ApplicationPackageRoot\ApplicationManifest.xml ファイルを開きます。
ApplicationManifest.xml ファイルで、
Parameters
要素にパラメーターと既定値を宣言します。 パラメーター名にはサービスの名前 (たとえば "MyService") を含めることをお勧めします。<Parameters> <Parameter Name="MyService_CacheSize" DefaultValue="80" /> </Parameters>
ApplicationManifest.xml ファイルの
ServiceManifestImport
セクションにConfigOverrides
とConfigOverride
要素を追加し、構成パッケージ、セクション、およびパラメーターを参照します。<ConfigOverrides> <ConfigOverride Name="Config"> <Settings> <Section Name="MyConfigSection"> <Parameter Name="CacheSize" Value="[MyService_CacheSize]" /> </Section> </Settings> </ConfigOverride> </ConfigOverrides>
Note
ConfigOverride を追加すると、Service Fabric は常に、アプリケーション パラメーターか、アプリケーション マニフェストで指定されている既定値を選びます。
コード内のパラメーター化された構成にアクセスする
settings.xml ファイル内の構成にプログラムでアクセスできます。 たとえば、次の構成 XML ファイルがあるとします。
<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>
パラメーターにアクセスするには、次のコードを使用します。
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
は MyParameter で、Parameter.Value
は Value1 です
次のステップ
Visual Studio で使用可能なその他のアプリケーション管理機能については、 Visual Studio での Service Fabric アプリケーションの管理に関する記事をご覧ください。