構成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

次のタイプのファイルベースの設定を使用して、Sitecore Hostを設定します。

  • Host configuration - Sitecore Host自体の設定。これは主に低レベル設定用です。

  • Plugin configuration - プラグインのオプション設定。

  • Application configuration - アプリケーションの主な構成。ここでは、プラグインの設定値を上書きすることもできます。

設定のパッチ適用を使用して、設定を上書きします。

ホスト構成

Sitecore Hostアプリケーションを起動すると、最初にsitecorehost.xmlファイルを探します。このファイルには、ログ記録の設定やサービス登録などの低レベルの設定が含まれています。これは、アプリケーションが完全に読み込まれる前にこれらの設定が処理されるためです。

ホスト設定は次のように機能します。

SitecoreHostApplication (Root)
├── sitecoreruntime
   └── _shared
       └── sitecorehost.xml
   └── <env>
       └── sitecorehost.xml
├── sitecorehost.xml
└── sitecorehost.<env>.xml

sitecorehost.xmlファイルには、アプリケーションのデフォルトのホスト設定があります。環境固有の設定ファイル (sitecorehost.production.xmlなど) がある場合、Sitecoreはこの設定を使用して、すでにロードされている設定にパッチを適用します。共有環境がsitecoreruntime/_sharedフォルダーで構成されている場合は、sitecorecorehost.xmlファイルも持つことができます。その場合、Sitecoreはこの設定を使用して、すでにロードされている設定にパッチを適用します。

特定の環境 ( productionなど) がsitecoreruntimeフォルダーの下に構成されている場合は、sitecorecorehost.xmlファイルも含まれる可能性があります。その場合、Sitecoreはこの設定を使用して、すでにロードされている設定にパッチを適用します。

すべての設定ファイルはオプションです。ホスト アプリケーションが起動すると、sitecorehost構成ファイルが読み込まれ、ISitecoreHostingEnvironmentのインスタンスに見つかった値が設定されます。 sitecorehost*.xmlファイルから検出された完全な構成にアクセスするには、ホスト オブジェクトのConfigurationプロパティを使用します。

プラグインの設定

プラグインを設定するには、xmlファイルをconfigフォルダに追加します。ホストは、プラグインからの設定値を上書きできるconfigフォルダも提供できます。

sitecoreruntime_sharedフォルダーで共有環境を構成する場合、構成値を上書きするために使用するconfigフォルダーも持つことができます。

sitecoreruntimeフォルダーの下に特定の環境 (productionなど) を構成する場合は、構成値をオーバーライドするためのconfigフォルダーも持つことができます。Sitecoreがプラグインconfigフォルダーから設定をロードすると、すべての*.xmlファイルが名前順にロードされます。次に、configフォルダで、現在の環境の名前と一致する名前のフォルダがあるかどうかを確認します。 見つかった場合は、このフォルダ内の*.xmlファイルを名前順に読み込みます。その後、ホストconfigフォルダが存在する場合は、そのフォルダに対してこの処理が繰り返されます。

最後に、sitecoreruntimeフォルダもチェックされ、ここにconfigフォルダが存在する場合は、そのフォルダに対してプロセスが再度繰り返されます。すべての設定フォルダはオプションです。

プラグインによって提供される設定には、任意のクラスに挿入できるISitecoreConfigurationオブジェクトを使用してアクセスできます。

SitecoreHostApplication (Root)
├── config
   ├── config1.xml
   ├── config2.xml
   └── <env>
       └── config.xml
├── sitecore
   ├── PluginA
      └── config
          └── config.xml
   └── PluginB
       └── config
           └── config.xml
└── sitecoreruntime
    └── _shared
        └── config
            ├── config1.xml
            └── config2.xml    
    └── <env>
        └── config
            ├── config1.xml
            └── config2.xml

コードでのプラグイン設定へのアクセス

アプリケーションとプラグインの設定は、ディスクからロードされ、パッチが適用されてから、任意のクラスに挿入できるISitecoreEnvironmentオブジェクトにロードされます。

このトピックには、次の詳細情報が含まれています。

実行時に設定値を上書きする

特別な環境変数を設定して、ファイルベースの設定を上書きできます。Sitecore環境変数もIHostingEnvironment.ConfigurationオブジェクトとISitecoreConfigurationオブジェクトの両方に追加され、以前に設定された値が更新されます。環境変数を使用すると、実際のアセットに変更を加えることなく、アプリケーションの設定を制御できます。

環境変数は、ロードするSITECORE_で始まる必要があります。プレフィックスは、値が設定に適用されると削除されます。設定パスに複数のパスがある場合は、次のように、各部分を2つのアンダースコアまたはコロンで区切ります。

環境変数

構成からの読み取り

SITECORE_Environment

環境

SITECORE_Commands__DefaultCommand__Default

コマンド:DefaultCommand:デフォルト

SITECORE_MyCustom:キー

MyCustom:キー

コマンドライン設定

アプリケーションを起動するときに、特定のコマンドの引数とオプションを指定できます。また、設定引数を指定して設定を上書きするには、--の後に値を渡すことで設定を上書きすることもできます。

各設定値は、<key>がコロンで区切られた設定パスである--<key><value>(Commands:DefaultCommand:Defaultなど) として指定します。

この方法で渡す値は、コレクションに最後に追加された値であるため、常に最終的な構成値になります。コマンドライン設定は、IHostingEnvironment.ConfigurationオブジェクトとISitecoreConfigurationオブジェクトの両方に追加されます。

設定の読み込み順序

次の図は、Sitecoreがアプリケーションのさまざまなレイヤーで設定を評価する順序を示しています。

Configuration layers

構成のパッチ適用

設定ファイルは、Sitecore Hostアプリケーションまたはプラグインの設定で値のパッチ適用をサポートしています。Sitecore Host内のパッチ適用メカニズムは、一般的にSitecoreで使用するパッチ適用ロジックを模倣するように設計されており、同じ機能を提供します。

通常のSitecoreからのすべてのパッチ適用方法が完全にサポートされています。

  • patch:before- 指定した要素の前に要素を挿入します。

  • patch:after- 指定した要素の後に要素を挿入します。

  • patch:attribute- 要素の指定された属性を定義または置換します。 set名前空間を使用しても同じ効果を得ることができます。

  • patch:delete- 指定した要素を削除します。

  • patch:instead– 指定した要素を置き換えます。

次に、設定のパッチ適用の例を示します。

<Settings>
  <Sitecore xmlns:patch="http://www.sitecore.net/xmlconfig/">
     <sites>
      <site patch:before="*[@name='website']" name="mysite" />
      <site patch:after="*[@name='website']" name="mysite2" />
      <site patch:delete="*[@name='website']" name="mysite2" />
      <site patch:instead="*[@name='website']" name="mysite2" />
      <patch:attribute name="value">
       MyNewValue
      </patch:attribute>
    </sites>
  </Sitecore>
</Settings>

すべての設定ファイルは1つの設定ソースにマージされ、ISitecoreHostingEnvironment.ConfigurationオブジェクトまたはISitecoreConfigurationオブジェクトからアクセスできます。次の例は、2つのファイルをマージした結果を示しています。

File1.xml


<Settings>
  <Sitecore>
    <Diagnostics>
      <Debug>true</Debug>
      <MyValue>First</MyValue>
    </Diagnostics>
  </Sitecore>
</Settings>


File2.xml


<Settings>
  <Sitecore>
    <Diagnostics>
      <Root>Alt</Root>
      <MyValue>Second</MyValue>
    </Diagnostics>
  </Sitecore>
</Settings>


Merged configuration


<Settings>
  <Sitecore>
    <Diagnostics>
      <Debug>true</Debug>
      <Root>Alt</Root>
      <MyValue>Second</MyValue>
    </Diagnostics>
  </Sitecore>
</Settings>

Sitecore Host設定によるサービスの登録

ホスト構成 (sitecorehostファイル) を使用して、ホスト・アプリケーションでデフォルトで使用可能なサービスを追加または変更します。

サービス構成プロパティ

サービスのエントリを追加するときに、次のプロパティを追加できます。

名前

形容

必須

値の例

既定値

Type

登録する型の名前空間。

はい

MyClass, My.Namespace

デフォルトはありません。

As

サービスを登録するタイプ。これは、コンテナからオブジェクトにアクセスするときに使用されるタイプです。

いいえ

IInterface, My.Namespace

値を指定しない場合、AsTypeと同じ値になります。

Lifetime

サービスの有効期間。有効なServiceLifetime 列挙値である必要があります。

はい

Transient

Singleton

Options

クラスに渡すことができるオプションの値。詳細については、BindOptions物件をご覧ください。

いいえ

以下の例を参照してください。

Null

BindOptions

作成されたサービスにOptionsを渡す方法を制御します。 ConstructorまたはPropertyにすることができます。

  • Constructor - オプションは、IConfigurationSectionのインスタンスとしてコンストラクタに渡されます。型には、IConfigurationSectionを受け取るパブリックコンストラクタが必要です。

  • Property - オプションは、構築後にインスタンスプロパティに直接バインドされます。

はい

Property

Constructor

次に、サービス設定の例を示します。

<MyType>
  <Type>My.Custom.Class, MyCustom</Type>
  <As>My.Custom.IInterface, MyCustom</As>
  <Lifetime>Transient</Lifetime>
  <Options>
    <SomeProperty>Value</SomeProperty>
  </Options>
  <BindOptions>Property</BindOptions>
</MyType>

サービスの追加

サービスを追加するには、構成パスHost:Services:Addを使用します。各サービスを一意のパスの下に追加します。これにより、構成内のサービスにパッチを適用し、更新できます。次に、設定パスを使用してサービスを追加する例を示します。

<Sitecore>
    <Host>
        <Services>
            <Add>
                <MyType>
                    <Type>ConsoleHost.MyType, HostConfiguration</Type>
                    <As>ConsoleHost.IMyType, HostConfiguration</As>
                    <Lifetime>Transient</Lifetime>
                </MyType>
            </Add>            
        </Services>
    </Host>
</Sitecore> 

サービスの置き換え

次の例に示すように、設定パスHost:Services:Replaceを使用してサービスを置き換えます。

<Sitecore>
    <Host>
        <Services>
            <Replace>
                <DefaultAssemblyResolverFactory>
                    <Type>ConsoleHost.MyAssemblyResolverFactory, HostConfiguration</Type>
                    <As>Sitecore.Framework.Runtime.Assembly.IAssemblyResolverFactory, Sitecore.Framework.Runtime.Abstractions</As>
                </DefaultAssemblyResolverFactory>
            </Replace>          
        </Services>
    </Host>
</Sitecore> 

おすすめの方法

Sitecore Hostアプリケーションを見ると、さまざまなプラグインによって提供されるため、さまざまな場所に設定があることがわかります。例えば:

SitecoreHostApplication (Root)
├── sitecore
   ├── PluginA
      └── config
          └── config.xml
   └── PluginB
       └── config
           └── config.xml
└── sitecoreruntime
    └── <env>
        └── sitecore
            └── RuntimePluginA
               └── config
                   └── config.xml

これらの設定ファイルを直接編集したり、読み取り専用と見なしたりしないでください。代わりに、アプリケーションのルートにあるconfigフォルダに独自の設定ファイルを作成します。これにより、必要な値のオーバーライドを提供し、独自のファイルで構成を追跡できます。

この例では、プラグイン (SQL.Plugin) をメインアプリケーション内に貼り付けます。

SitecoreHostApplication (Root)
├── sitecore
   ├── SQL.Plugin
      └── config
          └── config.xml

デフォルトでは、ConnectionString要素は空白です。

<Sitecore>
    <SQL.Plugin>
        <ConnectionString></ConnectionString>
        <Retries>10</Retries>
        <BackOffPeriod18791275782<11879127578/BackOffPeriod>
        <BatchSize>500</BatchSize>
    </SQL.Plugin>
</Sitecore>

独自の接続文字列を指定することも、developmentproductionに異なる接続を使用することもできます。これを行うには、次の手順を実行します。

  1. アプリケーションのルートにconfigフォルダを作成します(まだ存在しない場合)。

  2. developmentproductionの環境固有のサブフォルダーを作成します。

    SitecoreHostApplication (Root)
       ├── config
          └── production
                └── production-config.xml
          └── development
                └── development-config.xml
       ├── sitecore
          ├── SQL.Plugin
             └── config
                 └── config.xml
  3. これらの各サブフォルダに、オーバーライドおよび更新する必要がある要素を含む新しいXML configファイルを作成します。たとえば、production-config.xmlフォルダーで、接続文字列を指定し、より大きなバッチ サイズを設定できます。

    <Sitecore>
        <SQL.Plugin>
            <ConnectionString><!-- ProductionDBConnection --></ConnectionString>
            <BatchSize>1000</BatchSize>
        </SQL.Plugin>
    </Sitecore>

    development-config.xmlフォルダーで、接続文字列を指定します。

    <Sitecore>
        <SQL.Plugin>
            <ConnectionString><!-- DevelopmentDBConnection --></ConnectionString>
        </SQL.Plugin>
    </Sitecore>

元の設定の完全なコピーを提供する必要はなく、オーバーライドする必要がある要素のみを提供する必要があります。

この記事を改善するための提案がある場合は、 お知らせください!