Citrix Application Delivery Management 13.0

繰り返しの構成

コンポーネントの repeat 構成を使用して、同じタイプの複数の構成オブジェクトを作成できます。

次の例では、members-svcg-compコンポーネントは、親コンポーネントが作成したサービスグループにサービス一覧をバインドするために使用されます。各サーバーをサービスグループにバインドする構成オブジェクトを作成するには、repeat構造を使用して、svc-serversパラメーターに指定されたサービス一覧を反復処理します。反復処理中、コンポーネントは サービスグループ内の各サービス ( **繰り返し項目 構造では srv と呼ばれる) に対して servicegroup_servicegroupmember_binding** 型の NITRO オブジェクトを作成し、各 NITRO に ip 属性を設定します。オブジェクトを対応するサービスの IP アドレスに設定します。

:

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: $parameters.svc-port
                                servicegroupname: $parent.properties.name
<!--NeedCopy-->

ピート はそれ自体でオブジェクトであり、 リピートリストリピートアイテム はリピートオブジェクトの属性です。

  • repeat-listは、コンポーネントが反復する一覧を識別する必須の属性です。
  • repeat-itemはオプションで、反復処理中の現在の項目にフレンドリ名を付けるために使用されます。

指定しない場合、現在のアイテムには **$repeat-item** という式を使用してアクセスできます。上の例の最後のコンポーネントは、次のように記述することもできます。

          -
          name: members-svcg-comp
          type: ns::servicegroup_servicegroupmember_binding
          repeat:
            repeat-list: $parameters.svc-servers
          properties:
                 ip: $repeat-item
                 port: $parameters.svc-port
                 servicegroupname: $parent.properties.name
<!--NeedCopy-->

リストを反復処理する現在のアイテムを参照できるだけでなく、 repeat-indexを使用してリスト内のアイテムの現在のインデックスを参照することもできます。次の例では、 repeat-index を使用して、現在のインデックスに基づいてポート番号を計算します。

             name: services
             type: ns::service
             repeat:
                repeat-list: $parameters.app-services
                repeat-item: srv
             properties:
                 ip: $parameters.app-ip
                 port: $parameters.base-port + repeat-index
                 servicegroupname: $parent.properties.name
<!--NeedCopy-->

repeat-item 構造と同様に、イテレーションの現在のインデックスを参照する別の変数名を割り当てることができます。前の例は次の例と同等です。

     -
             name: services
             type: ns::service
             repeat:
                repeat-list: $parameters.app-services
                repeat-item: srv
                repeat-index: idx
             properties:
                 ip: $parameters.app-ip
                 port: $parameters.base-port + $idx
                 servicegroupname: $parent.properties.name
<!--NeedCopy-->
繰り返しの構成