Verschachtelte Komponenten
Durch das Verschachteln einer Komponente innerhalb einer anderen Komponente kann die verschachtelte Komponente ihre Konfigurationsobjekte erstellen, indem sie auf Konfigurationsobjekte oder den von der übergeordneten Komponente erstellten Kontext verweist. Die verschachtelte Komponente kann für jedes Objekt, das in der übergeordneten Komponente erstellt wurde, ein oder mehrere Objekte erstellen. Das Verschachteln einer Komponente innerhalb einer anderen Komponente zeigt keine Beziehung zwischen den erstellten Konfigurationsobjekten an. Verschachtelung ist eine Möglichkeit, die Aufgabe von Komponenten zu erleichtern, Konfigurationsobjekte in einem vorhandenen Kontext 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 der übergeordneten Komponente erstellte Dienstgruppe an den virtuellen Lastausgleichsserver (lbvserver) zu binden, der von der übergeordneten Komponente des übergeordneten Elements erstellt wurde. Die $parent Notation, auch übergeordnete Referenz genannt, 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 Dienstgruppe zu binden, die von der übergeordneten Komponente erstellt wurde. Die Bindung wird erreicht, indem das Wiederholungskonstrukt von StyleBook verwendet wird, um über die Liste der Dienste zu iterieren, die für den Parameter svc-Server angegeben sind. Informationen zu Wiederholungskonstrukten finden Sie unter Repeat Construct.
Sie können auch dieselben Konfigurationsobjekte erstellen, ohne die Verschachtelung von Komponenten zu verwenden. Weitere Informationen und Beispiele finden Sie unter StyleBook to Create a Basic Load Balancing Configuration.