StyleBookの設定

オプションのプロパティ

コンポーネントのプロパティは、パラメータ参照などの単純な式またはより複雑な式である式から値を取る場合があります。このプロパティ値の設定は、コンポーネントではオプションです。式から実際の値が返される場合にのみプロパティの値を設定し、値が返されない場合はこのプロパティを設定しなくてもかまいません。

たとえば、設定するプロパティの 1 つが ns። lbvserver 型のコンポーネントの lbmethod (負荷分散アルゴリズム) であるとします。以下に示すように、 lbmethod プロパティの値は、ユーザーが指定したパラメータ値から取得されます。

components

  -

      name: lbvserver_comp

      type: ns::lbvserver

      properties:

        name: $parameters.lb-appname + "-lb"

        servicetype: $parameters.lb-service-type

        ipv46: $parameters.lb-virtual-ip

        port: 80

        lbmethod: $parameters.lb-advanced.algorithm
<!--NeedCopy-->

ここで、パラメータ lb-advanced.algorithm がオプションのパラメータであることを考えてみましょう。また、オプションであるためにユーザーがこのパラメータの値を指定しない場合、式 $parameters.lb-advanced.algorithm は空白の値に評価されます。したがって、 lbmethod プロパティに無効な値が渡されます。このような状況を回避するには、次のようにプロパティ名に「?」のサフィックスを付けて、プロパティにオプションであることを示す注釈を付けることができます。

components

   -

     name: lbvserver_comp

     type: ns::lbvserver

     properties:

       name: $parameters.lb-appname + "-lb"

       servicetype: $parameters.lb-service-type

       ipv46: $parameters.lb-virtual-ip

       port: 80

       lbmethod?: $parameters.lb-advanced.algorithm
<!--NeedCopy-->

「?」を使用すると、右側の式がなしに評価された場合、このプロパティは省略されます。この例では、次のように定義されたコンポーネントと同等になります。

components

  -

    name: lbvserver_comp

    type: ns::lbvserver

    properties:

      name: $parameters.lb-appname + "-lb"

      servicetype: $parameters.lb-service-type

      ipv46: $parameters.lb-virtual-ip

      port: 80
<!--NeedCopy-->

lbmethod はオプションなので、省略しても有効なコンポーネントになります。タイプの「ns። lbvserver」で定義されている場合、 lbmethod はデフォルト値を使用する場合があります。

オプションのプロパティ

この記事の概要