Application Delivery Management

Verschachtelte Komponenten

Das Verschachteln einer Komponente in einer anderen Komponente ermöglicht es der verschachtelten Komponente, ihre Konfigurationsobjekte zu erstellen, indem sie auf Konfigurationsobjekte oder den Kontext verweist, die von der übergeordneten Komponente erstellt wurden. Die verschachtelte Komponente kann ein oder mehrere Objekte für jedes in der übergeordneten Komponente erstellte Objekt erstellen. Das Verschachteln einer Komponente in einer anderen Komponente weist auf keine Beziehung zwischen den erstellten Konfigurationsobjekten hin. Die Verschachtelung ist eine Möglichkeit, die Aufgabe von Komponenten zu erleichtern, Konfigurationsobjekte innerhalb eines bestehenden Kontexts der übergeordneten Komponenten zu konstruieren.

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: str($parameters.svc-port)
                      servicegroupname: $parent.properties.name
<!--NeedCopy-->

In diesem Beispiel wird eine mehrstufige Verschachtelung verwendet. Die Komponente my-lbvserver-comp hat eine untergeordnete Komponente namens my-svcg-comp. Und die Komponente my-svcg-comp enthält zwei untergeordnete Komponenten. Die Komponente my-svcg-comp wird verwendet, um ein Dienstgruppen-Konfigurationsobjekt auf der NetScaler-Instanz zu erstellen, indem Werte für die Attribute des integrierten NITRO-Ressourcentyps „servicegroup“ bereitgestellt werden. Die erste untergeordnete Komponente der my-svcg-Komponente, lbvserver-svg-binding-comp, wird verwendet, um die von ihrer übergeordneten Komponente erstellte Dienstgruppe an den Lastausgleichs-Virtual-Server (lbvserver) zu binden, der von der übergeordneten Komponente der übergeordneten Komponente erstellt wurde. Die $parent-Notation, auch als Elternreferenz bezeichnet, wird verwendet, um auf Entitäten in den übergeordneten Komponenten zu verweisen. Die zweite untergeordnete Komponente, members-svcg-comp, wird verwendet, um die Liste der Dienste an die von der übergeordneten Komponente erstellte Dienstgruppe zu binden. Die Bindung wird durch die Verwendung des repeat-Konstrukts von StyleBook erreicht, um über die Liste der für den Parameter svc-servers angegebenen Dienste zu iterieren. Informationen zu repeat-Konstrukten finden Sie unter Repeat-Konstrukt.

Sie können dieselben Konfigurationsobjekte auch ohne die Verschachtelung von Komponenten erstellen. Weitere Informationen und Beispiele finden Sie unter StyleBook zum Erstellen einer grundlegenden Lastausgleichskonfiguration.

Verschachtelte Komponenten