プロパティーズ・デフォルト・ソース構成要素

最終公開日 : Sep 25, 2026
properties-default-sources構成要素は、parameters-default-sources構成要素に類似しています。parameters-default-sources構成要素がStyleBook内で既存のパラメータ(他のStyleBookからのもの)の再利用を可能にする一方で、properties-default-sources構成要素は、既存のソースに基づいてコンポーネントのプロパティを指定することを可能にします。
コンポーネントのプロパティは、StyleBookのさまざまなセクションに分散している場合があります。たとえば、プロパティはオブジェクトパラメータ、オブジェクトを返す置換、他のコンポーネントのプロパティ、または他のコンポーネントの出力から取得されることがあります。このような場合、StyleBookの他のセクションに存在するプロパティを、コンポーネントの定義内で再定義する必要があります。これは明らかに冗長であり、エラーにつながる可能性があります。この問題に対処するため、properties-default-sources構成要素を使用できます。properties-default-sources構成要素は、各項目がコンポーネントのいくつかのプロパティのソースを識別するリストです。
たとえば、lbvserver構成を作成するコンポーネントを考えてみましょう。このコンポーネントは、lbvserverのプロパティを次のように定義します。
parameters:

  -

    name: lb

    type: ns::lbvserver

components:

  -

    name: lb-comp

    type: ns::lbvserver

    properties:

      name: $parameters.lb.name

      ipv46: $parameters.lb.ipv46

      port: $parameters.lb.port

      servicetype: $parameters.lb.servicetype

      lbmethod: $parameters.lb.lbmethod
上記の例では、コンポーネントセクションで定義されているすべてのプロパティの値が$parameters.lbオブジェクトから取得されていることに注目してください。単一のソースから取得されているにもかかわらず、プロパティはStyleBookで再度定義されています。さらに、lbvserverの構成に関連する$parameters.lbオブジェクトへの新しいサブパラメータが追加された場合、新しいサブパラメータに対応する新しいプロパティを追加するために、lb-compコンポーネントを更新する必要があります。
プロパティの再定義を避け、プロパティセクションに明示的にリストすることなくコンポーネントのすべての関連プロパティを取得するために、properties-default-sources構成要素を使用できます。上記の例は次のように記述できます。
parameters:

  -

    name: lb

    type: ns::lbvserver

components:

  -

    name: lb-comp

    type: ns::lbvserver

    properties-default-sources:

      - $parameters.lb
上記の例では、properties-default-sources構成要素を使用することで、コンポーネント定義のサイズが削減され、コンポーネントを簡潔に定義できるようになります。さらに、コンポーネントのプロパティのソースが変更されるたびに、変更が自動的に反映されます。たとえば、persistencetypeという新しいプロパティが$parameters.lbオブジェクトに追加された場合、persistencetypeがlbvserverのプロパティであるため、このプロパティはデフォルトでlb-compの構成に追加されます。したがって、properties-default-sources構成要素は、コンポーネントのプロパティのソースで発生する変更を心配することなく、コンポーネントを定義するための動的なインターフェースを提供します。
Related information

コンポーネントのプロパティの算出

このセクションでは、properties-default-sources構成要素がコンポーネントで使用された場合にプロパティがどのように取得されるかについて説明します。まず、StyleBooksコンパイラは、そのタイプに基づいてコンポーネントのプロパティのリストを識別します(上記の例では、lbvserver)。次に、コンパイラは、定義されている順序で(コンポーネントのproperties-default-sourcesセクションで)複数のソースからこれらのプロパティを取得します。プロパティが複数のソースに存在する場合、最後のソースに現れるプロパティが他のプロパティよりも優先されます。最後に、properties-default-sources構成要素を使用して取得されたプロパティは、コンポーネントのプロパティセクションで上書きできます。コンポーネントセクションの定義には、少なくともproperties-default-sourcesセクションまたはpropertiesセクションのいずれかがあることに注意することが重要です。両方を持つこともできます。