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 リソースタイプ「サービスグループ」の属性に値を指定することにより、Citrix ADC インスタンス上にサービスグループ構成オブジェクトを作成するために使用されます。my-svcgコンポーネントの最初の子コンポーネントであるlbvserver-svg-binding-compは、親コンポーネントが作成したサービスグループと、さらにその親のコンポーネントが作成した負荷分散仮想サーバー(lbvserver)をバインドするために使用されます。$parent表記(親参照とも呼ばれる)は、親コンポーネントのエンティティを参照するために使用されます。2番目の子コンポーネントであるmembers-svcg-compは、親コンポーネントが作成したサービスグループにサービス一覧をバインドするために使用されます。このバインドを実行するには、StyleBookのrepeat構造を使用して、svc-serversパラメーターに指定されたサービス一覧を反復処理します。repeat構造については、「repeat構造」を参照してください。

同じ構成オブジェクトを、コンポーネントのネストを使用せずに作成することもできます。追加の情報および例については、「基本的な負荷分散の構成を作成するためのStyleBook」を参照してください。

ネストされたコンポーネント

この記事の概要