StyleBook-Konfiguration

Optionale Eigenschaften

Manchmal nimmt eine Eigenschaft einer Komponente ihren Wert aus einem Ausdruck, der ein einfacher Ausdruck wie eine Parameterreferenz oder ein komplexerer sein kann. Das Festlegen dieses Eigenschaftswerts ist in der Komponente optional. Sie können den Eigenschaftswert nur festlegen, wenn der Ausdruck einen tatsächlichen Wert zurückgibt, andernfalls können Sie diese Eigenschaft nicht festlegen.

Stellen Sie sich beispielsweise vor, dass eine der Eigenschaften, die Sie festlegen möchten, derlbmethod(Load Balancing-Algorithmus) einer Komponente ist, deren Typ ns። lbvserver ist. Der Wert der Eigenschaftlbmethodwird einem vom Benutzer bereitgestellten Parameterwert entnommen, wie unten dargestellt:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80 lbmethod: $parameters.lb-advanced.algorithm 

Betrachten Sie nun, dass der Parameterlb-advanced.algorithmein optionaler Parameter ist. Wenn der Benutzer keinen Wert für diesen Parameter bereitstellt, weil er optional ist, wird der Ausdruck$parameters.lb-advanced.algorithmals leerer Wert ausgewertet. Daher wird ein ungültiger Wert für dielbmethodEigenschaft übergeben. Um eine solche Situation zu vermeiden, können Sie die Eigenschaft als optional kommentieren, indem Sie ihren Namen mit ? wie folgt:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80 lbmethod?: $parameters.lb-advanced.algorithm 

Die Verwendung von ? wird die Eigenschaft weggelassen, wenn der Ausdruck rechts zu nichts ausgewertet wird, was in diesem Fall einer Komponente gleichwertig wäre, die wie folgt definiert ist:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80 

Dalbmethodoptional ist, ist das Weglassen immer noch eine gültige Komponente. Beachten Sie, dasslbmethoddies möglicherweise seinen Standardwert annehmen kann, wenn einer in seinem Typ “ns። lbvserver definiert ist. “

Optionale Eigenschaften

In diesem Artikel