構成

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

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

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

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

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

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

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

ホスト構成

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

ホスト構成は、次の手順で構成されます。

  • 各環境の構成を提供します。

    必要に応じて、ホスト設定の環境固有のバージョンを提供できます。

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

    環境固有の設定ファイル (sitecorehost.production.xmlなど) がある場合、このファイルは、すでにロードされている設定にパッチを適用するために使用されます。

    sitecoreruntimeフォルダーの下に環境を構成すると、sitecorecorehost.xmlファイルを含めることができます。その場合、このファイルは、既にロードされている設定にパッチを適用するために使用されます。

  • コードでホスト構成にアクセスします。

    ホスト構成は、sitecorehost.xmlファイルからISitecoreHostingEnvironmentオブジェクトにデータを読み込みます。Configurationプロパティを通じて任意の値にアクセスできます。

アプリケーションとプラグインの構成

プラグインは、configフォルダにxmlファイルを追加することで設定を提供できます。アプリケーションは、プラグインからの構成値をオーバーライドできるconfigフォルダーを提供することもできます。

sitecoreruntimeフォルダーの下に環境を構成する場合、この環境では、構成値を上書きするためのconfigフォルダーも提供できます。

Sitecoreがプラグインconfigフォルダーから設定をロードすると、すべての *.xmlファイルが名前順にロードされます。次に、configフォルダで、現在の環境の名前と一致するフォルダがないか確認します。見つかった場合、このフォルダ内の *.xmlファイルも名前順にロードされます。その後、ホストconfigフォルダ(このフォルダが存在する場合)に対してこの処理が繰り返されます。最後に、sitecoreruntimeフォルダがチェックされます。ここにconfigフォルダが存在する場合は、このプロセスが繰り返されます。

SitecoreHostApplication (Root)
├── config
   ├── config1.xml
   ├── config2.xml
   └── <env>
       └── config.xml
├── sitecore
   ├── PluginA
      └── config
          └── config.xml
   └── PluginB
       └── config
           └── config.xml
└── sitecoreruntime
    └── <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 列挙値である必要があります。

儚い

シングルトン

Options

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

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

ヌル

BindOptions

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

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

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

財産

コンストラクタ

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

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

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

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