Citrix Application Delivery Management Service

Optionale Eigenschaften

In einigen Fällen nimmt eine Eigenschaft einer Komponente ihren Wert aus einem Ausdruck heraus, bei dem es sich um einen einfachen Ausdruck wie eine Parameterreferenz oder um einen komplexeren handelt. 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.

Angenommen, eine der Eigenschaften, die Sie festlegen möchten, ist die lbmethod (Loadbalancing-Algorithmus) einer Komponente, deren Typ ns::lbvserver ist. Der Wert der Eigenschaft lbmethod wird aus 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 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 Eigenschaft lbmethod ü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

Da lbmethod optional ist, wird dies immer noch zu einer gültigen Komponente. Beachten Sie, dass lbmethod seinen Standardwert annehmen kann, wenn einer in seinem Typ ns:: lbvserver definiert ist.

Optionale Eigenschaften