Application Delivery Management

Optionale Eigenschaften

In einigen Fällen bezieht eine Eigenschaft einer Komponente ihren Wert aus einem Ausdruck, der ein einfacher Ausdruck, wie eine Parameterreferenz, oder ein komplexerer sein kann. Das Setzen dieses Eigenschaftswertes ist in der Komponente optional. Sie können wählen, den Eigenschaftswert nur dann zu setzen, wenn der Ausdruck einen tatsächlichen Wert zurückgibt; andernfalls können Sie wählen, diese Eigenschaft nicht zu setzen.

Betrachten Sie zum Beispiel, dass eine der Eigenschaften, die Sie setzen möchten, die lbmethod (Lastverteilungsalgorithmus) einer Komponente vom Typ ns::lbvserver ist. Der Wert der Eigenschaft lbmethod wird von einem vom Benutzer bereitgestellten Parameterwert übernommen, wie unten gezeigt:

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. Und wenn der Benutzer keinen Wert für diesen Parameter angibt, weil er optional ist, wird der Ausdruck $parameters.lb-advanced.algorithm zu einem leeren 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 kennzeichnen, indem Sie ihrem Namen ein “?” anfügen, 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 “?” lässt die Eigenschaft weg, wenn der Ausdruck auf der rechten Seite zu nichts ausgewertet wird, was in diesem Fall einer wie folgt definierten Komponente entsprechen würde:

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, macht das Weglassen die Komponente immer noch gültig. Beachten Sie, dass lbmethod seinen Standardwert annehmen könnte, falls einer in ihrem Typ „ns::lbvserver“ definiert ist.

Optionale Eigenschaften