Application Delivery Management

properties-default-sources 構成要素

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

上記の例では、components セクションで定義されているすべてのプロパティの値が $parameters.lb オブジェクトから取得されていることに注目してください。これらは単一のソースから取得されていますが、プロパティはStyleBook内で再度定義されています。さらに、lbvserverの構成に関連する新しいサブパラメーターが $parameters.lb オブジェクトに追加された場合、新しいサブパラメーターに対応する新しいプロパティを追加するために lb-comp コンポーネントを更新する必要があります。

プロパティの再定義を避け、properties セクションに明示的にリストすることなくコンポーネントのすべての関連プロパティを取得するために、properties-default-sources 構成要素を使用できます。上記の例は次のように記述できます。

parameters:
  -
    name: lb
    type: ns::lbvserver
components:
  -
    name: lb-comp
    type: ns::lbvserver
    properties-default-sources:
      -  $parameters.lb
<!--NeedCopy-->

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

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

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

properties-default-sources 構成要素