Application Delivery Management

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

In diesem Artikel