この記事は機械翻訳されています.免責事項
repeat構造
コンポーネントの 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
リピートはそれ自体がオブジェクトであり 、 **リピートリストとリピートアイテムはリピートオブジェクトの属性です** 。
- 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
リスト上で現在の項目を白く反復して参照できるだけでなく、 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
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