Application Delivery Management

嵌套组件

通过在一个组件中嵌套另一个组件,嵌套的组件可以通过引用父组件创建的配置对象或上下文来创建其配置对象。嵌套的组件可以为父组件中创建的每个对象创建一个或多个对象。在一个组件中嵌套另一个组件并不表示创建的配置对象之间有任何关系。嵌套是一种简化组件的任务以在父组件的现有上下文中构造配置对象的方式。

示例


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 组件里面有两个子组件。my-svcg-comp 组件用于通过为内置 NITRO 资源类型“servicegroup”的属性提供值来在 NetScaler 实例上创建服务组配置对象。my-svcg 组件的第一个子组件 lbvserver-svg-binding-comp 用于将其父组件创建的服务组绑定到父组件的父组件创建的负载平衡虚拟服务器 (lbvserver)。$parent 表示法(也称为父引用)用于引用父组件中的实体。第二个子组件 members-svcg-comp 用于将一组服务绑定到父组件创建的服务组。绑定是通过使用样书的 repeat 构造迭代为参数 svc-servers 指定的一组服务来完成。有关 repeat 构造的信息,请参阅 Repeat 构造

还可以在不使用组件嵌套的情况下创建相同配置对象。有关详细信息和示例,请参阅用于创建基本负载平衡配置的样书

嵌套组件