Application Delivery Management

コンポーネントのネスト

コンポーネントを別のコンポーネント内にネストすると、ネストされたコンポーネントは、親コンポーネントによって作成された構成オブジェクトまたはコンテキストを参照して、独自の構成オブジェクトを作成できます。ネストされたコンポーネントは、親コンポーネントで作成されたオブジェクトごとに1つ以上のオブジェクトを作成できます。コンポーネントを別のコンポーネント内にネストしても、作成された構成オブジェクト間に何らかの関係があることを示すものではありません。ネストは、既存の親コンポーネントのコンテキスト内でコンポーネントが構成オブジェクトを構築するタスクを容易にする方法です。


components:
 -
  name: my-lbvserver-comp
  type: ns::lbvserver
   properties:
      name: $parameters.name + "-lb"
      servicetype: HTTP
      ipv46: $parameters.ip
      port: 80
      lbmethod: $parameters.lb-alg
      components:
        -
         name: my-svcg-comp
         type: ns::servicegroup
         properties:
            name: $parameters.name + "-svcgrp"
            servicetype: HTTP
         components:
            -
              name: lbvserver-svg-binding-comp
              type: ns::lbvserver_servicegroup_binding
              properties:
                name: $parent.parent.properties.name
                servicegroupname: $parent.properties.name
                  -
                    name: members-svcg-comp
                    type: ns::servicegroup_servicegroupmember_binding
                    repeat:
                      repeat-list: $parameters.svc-servers
                      repeat-item: srv
                    properties:
                      ip: $srv
                      port: str($parameters.svc-port)
                      servicegroupname: $parent.properties.name
<!--NeedCopy-->

この例では、多段階のネストが使用されています。コンポーネント my-lbvserver-comp には、my-svcg-comp という子コンポーネントがあります。そして、my-svcg-comp コンポーネントには、その中に2つの子コンポーネントがあります。my-svcg-comp コンポーネントは、組み込みの NITRO リソースタイプ「servicegroup」の属性に値を提供することで、NetScaler インスタンス上にサービスグループ構成オブジェクトを作成するために使用されます。my-svcg コンポーネントの最初の子コンポーネントである lbvserver-svg-binding-comp は、その親コンポーネントによって作成されたサービスグループを、親の親コンポーネントによって作成された負荷分散仮想サーバー (lbvserver) にバインドするために使用されます。$parent 表記は、親参照とも呼ばれ、親コンポーネント内のエンティティを参照するために使用されます。2番目の子コンポーネントである members-svcg-comp は、サービスリストを親コンポーネントによって作成されたサービスグループにバインドするために使用されます。このバインディングは、StyleBook の repeat コンストラクトを使用して、パラメータ svc-servers に指定されたサービスリストを反復処理することで実現されます。repeat コンストラクトの詳細については、「Repeat Construct」を参照してください。

コンポーネントのネストを使用せずに、同じ構成オブジェクトを作成することもできます。詳細と例については、「StyleBook to Create a Basic Load Balancing Configuration」を参照してください。

コンポーネントのネスト