Application Delivery Management

ヘルパーコンポーネント

StyleBookのコンポーネントセクションの主な用途は、Nitro組み込みタイプ、または実際の構成オブジェクトを作成する他のStyleBookを使って、構成オブジェクトを生成することです。ヘルパーコンポーネントは、それ自身では構成オブジェクトを構築しません。ヘルパーコンポーネントは、パラメーターオブジェクト、他のコンポーネントのプロパティ、または他のコンポーネントの出力などを入力として、それらを他の形式に変換します。これが後に他のコンポーネントで使用されて、実際の構成オブジェクトが生成されます。ヘルパーコンポーネントには2種類あり、オブジェクトタイプとコンポーネントセクションを含まない他のStyleBookです。

以下の例は、NetScalerインスタンス上で負荷分散サーバー(モニターあり)(lb-mon-comp)を作成するために使われるStyleBookのスニペットです。


parameters:
  -
    name: appname
    type: string
  -
    name: ips
    type: ipaddress[]
  -
    name: vip
    type: ipaddress

components:
  -
    name: help-comp
    type: cmtypes::server-ip-port-params
    repeat:
      repeat-list: $parameters.ips
      repeat-item: server-ip
    properties:
      ip: $server-ip
      port: 80
 -
    name: lb-mon-comp
    type: stlb::lb-mon
    properties:
      lb-appname: $parameters.appname
      lb-virtual-ip: $parameters.vip
      lb-virtual-port: 80
      lb-service-type: HTTP
      svc-service-type: HTTP
      svc-servers: $components.help-comp.properties
<!--NeedCopy-->

パラメーターセクションにはアプリケーションの名前と負荷分散サーバーのIPアドレスを入力することができます。lb-mon-compコンポーネントセクションでは、lb-mon StyleBookのsvc-serversパラメーターには、それぞれの項目がipとportの2つのサブパラメーターを持つオブジェクトの一覧が予期されます。

ただし、このStyleBookのパラメーターセクションは、$parameters.ipsを使ってサーバーIPのみを受け取ります。このStyleBookでは、すべてのサーバーがポート80で実行されると想定されています。lb-mon StyleBookを使って負荷分散構成を作成するには、$parameters.ipsをオブジェクトの一覧に変換する必要があります。これは上記の例ではヘルパーコンポーネント、help-compを使って実現されます。help-compコンポーネントのタイプはserver-ip-port-params StyleBookです。このStyleBookはコンポーネントを持ちません。結果として、構成オブジェクトを作成しません。help-compは$parameters.ips上にリピート一覧を作成し、$parameters.ipsの各項目に対してipとport(80に静的に設定)からなるオブジェクトを構築します。そうしてhelp-compはIPアドレスの一覧を、後でlb-mon-compでsvc-serversプロパティを割り当てるために使用できるオブジェクトの一覧に変換します。help-compの結果は、lb-mon-compのsvc-serversプロパティに割り当てられます。

ヘルパーコンポーネント

この記事の概要