オプションのプロパティ

最終公開日 : Sep 25, 2026
コンポーネントのプロパティが、パラメータ参照のような単純な式、またはより複雑な式から値を取得することがあります。このプロパティ値の設定は、コンポーネントではオプションです。式が実際の値を返す場合にのみプロパティ値を設定することを選択でき、そうでない場合はこのプロパティを設定しないことを選択できます。
例えば、設定したいプロパティの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
ここで、パラメータ 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
「?」を使用すると、右側の式が何も評価されない場合にプロパティが省略されます。これは、この場合、次のように定義されたコンポーネントと同等になります。
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 はオプションであるため、それを省略しても有効なコンポーネントになります。lbmethod は、そのタイプ「ns::lbvserver」でデフォルト値が定義されている場合、そのデフォルト値を取る可能性があることに注意してください。
Related information