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, der lbmethod (Load Balancing-Algorithmus) einer Komponente ist, deren Typ ns። lbvserver ist. Der Wert der Eigenschaft lbmethod wird 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
<!--NeedCopy-->

Betrachten Sie nun, dass der Parameter lb-advanced.algorithm ein optionaler Parameter ist. Wenn der Benutzer keinen Wert für diesen Parameter bereitstellt, weil er optional ist, wird der Ausdruck $parameters.lb-advanced.algorithm als leerer Wert ausgewertet. Daher wird ein ungültiger Wert für die lbmethod Eigenschaft ü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
<!--NeedCopy-->

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

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

Optionale Eigenschaften

In diesem Artikel