Citrix Application Delivery Management 服务

重复构造

可以使用组件的重复构造来构建多个相同类型的配置对象。

在下面的示例中,members-svcg-comp组件用于将一组服务绑定到父组件创建的服务组。要创建将每台服务器绑定到服务组的配置对象,请使用重复构造遍历为参数 svc-server 指定的服务列表。在迭代过程中,该组件为服务组中的每个服务(在 repeat-item构造中称为srv)创建一个servicegroup_servicegroupmember_bind类型的 NITRO 对象,并将每个 NITRO 对象中的ip属性设置为相应服务的 IP 地址。

示例

组件:名称:my-lbvserver-comp类型:ns::磅vserver 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 

除了能够引用当前项目白色迭代列表之外,还可以使用重复索引引引用列表中项目的当前索引。在以下示例中,重复索引用于基于当前索引计算端口号:

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 

重复项构造类似,您可以指定不同的变量名称来引用迭代的当前索引。上述示例与以下示例等同:

- 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 
重复构造