Application Delivery Management

Optionale Eigenschaften

In einigen Fällen bezieht eine Eigenschaft einer Komponente ihren Wert aus einem Ausdruck, bei dem es sich um einen einfachen Ausdruck wie eine Parameterreferenz oder um einen komplexeren Ausdruck handeln 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 zum Beispiel vor, dass eine der Eigenschaften, die Sie festlegen möchten, die lbmethod (Loadbalancing-Algorithmus) einer Komponente vom 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 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
<!--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 es dennoch eine gültige Komponente, wenn es weggelassen wird. Beachten Sie, dass lbmethod möglicherweise seinen Standardwert annimmt, wenn einer in seinem Typ “ns::lbvserver” definiert ist.

Optionale Eigenschaften

In diesem Artikel