ヘルパーコンポーネント
StyleBookのコンポーネントセクションの主な用途は、Nitro組み込みタイプまたは実際の構成オブジェクトを作成する別のStyleBookを介して構成オブジェクトを生成することです。ヘルパーコンポーネントは、それ自体では構成オブジェクトを構築しません。ヘルパーコンポーネントは、パラメータオブジェクト、他のコンポーネントのプロパティ、または他のコンポーネントの出力などの他のセクションから入力を受け取り、それらを別の形式に変換します。これは、後で他のコンポーネントによって実際の構成オブジェクトを生成するために使用できます。ヘルパーコンポーネントには、オブジェクトタイプと、コンポーネントセクションを含まない別のStyleBookの2種類があります。
次の例は、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
パラメータセクションでは、アプリケーション名とロードバランシングサーバーのIPアドレスを入力できます。lb-mon-compコンポーネントセクションでは、lb-mon StyleBookのsvc-serversパラメータは、各項目に2つのサブパラメータ(ipとport)を持つオブジェクトのリストを期待します。
しかしながら、この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とポート(静的な80に設定されている)で構成されるオブジェクトを構築します。このように、help-compはIPアドレスのリストをオブジェクトのリストに変換し、これは後でlb-mon-compでsvc-serversプロパティを割り当てるために使用できます。help-compの結果は、lb-mon-compのsvc-serversプロパティに割り当てられます。