Ce article a été traduit automatiquement. (Clause de non responsabilité)
Construction repeat
Vous pouvez utiliser la construction répétée d’un composant pour créer plusieurs objets de configuration du même type.
Dans l’exemple suivant, le composant members-svcg-comp est utilisé pour lier la liste des services au groupe de services créé par le composant parent. Pour créer un objet de configuration qui lie chaque serveur au groupe de services, utilisez la construction de répétition pour parcourir la liste des services spécifiés pour le paramètre svc-servers. Au cours de l’itération, le composant crée un objet NITRO de type servicegroup_servicegroupmember_binding pour chaque service (appelé srv dans la construction répét-item ) dans le groupe de services, et il définit l’attribut ip de chaque objet NITRO sur l’adresse IP du service correspondant.
Exemple :
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 répétition est un objet en soi, et repeat-list etrepeat-item** sont des attributs de l’objet répété.
- repeat-list est un attribut obligatoire qui identifie la liste sur laquelle le composant itère.
- repeat-item est facultatif et est utilisé pour donner un nom convivial à l’élément actif dans l’itération.
S’il n’est pas spécifié, l’élément en cours est accessible à l’aide de l’expression$repeat-item. Le dernier composant de l’exemple ci-dessus peut également être écrit comme suit :
- 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
En plus de pouvoir faire référence à l’élément en cours en itérant sur une liste, il est également possible de faire référence à l’index actuel de l’élément de la liste à l’aide de repeat-index. Dans l’exemple suivant, repeat-index est utilisé pour calculer un numéro de port basé sur l’index actuel :
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
Comme pour la constructionrepeat-item, vous pouvez attribuer un nom de variable différent pour faire référence à l’index actuel de l’itération. L’exemple précédent est équivalent à l’exemple suivant :
- 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