Servicio Citrix Application Delivery Management

Repetir componente fijo

Puede utilizar la construcción repetida de un componente para crear varios objetos de configuración del mismo tipo.

En el ejemplo siguiente, el componente members-svcg-comp se utiliza para enlazar la lista de servicios al grupo de servicios creado por el componente principal. Para crear un objeto de configuración que vincule cada servidor al grupo de servicios, utilice la construcción de repetición para iterar sobre la lista de servicios especificados para el parámetro svc-servers. Durante la iteración, el componente crea un objeto NITRO de tipo servicegroup_servicegroupmember_binding para cada servicio (denominado srv en la construcción repeat-item ) en el grupo de servicios, y establece el atributo ip en cada NITRO a la dirección IP del servicio correspondiente.

Ejemplo:

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

La repetición es un objeto por sí misma, y repeat-list y repeat-item son atributos para el objeto repeat.

  • repeat-list es un atributo obligatorio que identifica la lista en la que el componente itera.
  • repeat-item es opcional, y se utiliza para dar un nombre descriptivo al elemento actual en la iteración.

Si no se especifica, se puede acceder al elemento actual mediante la expresión $repeat-item. El último componente en el ejemplo anterior también se puede escribir de la siguiente manera:

          -

          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

Además de poder hacer referencia al elemento blanco actual iterando sobre una lista, también es posible hacer referencia al índice actual del elemento en la lista mediante repeat-index. En el ejemplo siguiente, repeat-index se utiliza para calcular un número de puerto basado en el índice actual:

             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

Al igual que la construcción repeat-item, puede asignar un nombre de variable diferente para hacer referencia al índice actual de la iteración. El ejemplo anterior es equivalente al siguiente ejemplo:

     -

             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

Repetir componente fijo