重复构造
可以使用组件的重复构造来构建多个相同类型的配置对象。
在下面的示例中,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
重复构造
在本文中
已复制!
失败!