Application Delivery Management

Konstrukt wiederholen

Sie können das Wiederholungskonstrukt einer Komponente verwenden, um mehrere Konfigurationsobjekte desselben Typs zu erstellen.

Im folgenden Beispiel wird die members-svcg-comp-Komponente verwendet, um die Liste der Dienste an die von der übergeordneten Komponente erstellte Dienstgruppe zu binden. Um ein Konfigurationsobjekt zu erstellen, das jeden Server an die Dienstgruppe bindet, verwenden Sie das Wiederholungskonstrukt, um über die Liste der Dienste zu iterieren, die für den Parameter svc-servers angegeben ist. Während der Iteration erstellt die Komponente ein NITRO-Objekt vom Typ servicegroup_servicegroupmember_binding für jeden Dienst (im Repeat-Item-Konstrukt als srv bezeichnet) in der Dienstgruppe und setzt das IP-Attribut in jedem NITRO-Objekt auf die IP-Adresse des entsprechenden Dienstes.

Beispiel:

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
<!--NeedCopy-->

Die Wiederholung ist ein eigenständiges Objekt, und Wiederholungsliste und Wiederholungselementsind Attribute für das Wiederholungsobjekt .

  • repeat-list ist ein obligatorisches Attribut, das die Liste identifiziert, auf der die Komponente iteriert.
  • repeat-item ist optional und wird verwendet, um dem aktuellen Element in der Iteration einen benutzerfreundlichen Namen zu geben.

Wenn nicht angegeben, kann mit dem Ausdruck $repeat-item auf das aktuelle Element zugegriffen werden. Die letzte Komponente im obigen Beispiel kann auch wie folgt geschrieben werden:

          -
          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
<!--NeedCopy-->

Neben der Möglichkeit, auf das aktuelle Element während der Iteration über eine Liste zu verweisen, ist es auch möglich, auf den aktuellen Index des Elements in der Liste mit repeat-indexzu verweisen. Im folgenden Beispiel wird der Wiederholungsindex verwendet, um eine Portnummer auf der Grundlage des aktuellen Index zu berechnen:

             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
<!--NeedCopy-->

Ähnlich wie beim Konstrukt repeat-item können Sie einen anderen Variablennamen zuweisen, um auf den aktuellen Index der Iteration zu verweisen. Das vorherige Beispiel entspricht dem folgenden Beispiel:

     -
             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
<!--NeedCopy-->
Konstrukt wiederholen

In diesem Artikel