Parameterbedingungen
Parameterbedingungen werden verwendet, um das Verhalten bestimmter Parameter in der StyleBook-Definition zu ändern. Parameter in einer StyleBook-Definition sind die Eingaben, die zur Erstellung eines Konfigurationspakets bereitgestellt werden. Verwenden Sie parameters-conditions, um eine Parameterbedingung in der Definition zu definieren.
Ein Parameter kann in der StyleBook-Definition viele Einschränkungen haben. Die Parameterbedingungen werden verwendet, um Konflikte zu lösen, wenn ein Benutzer das Parameterverhalten ändert. Wenn ein Benutzer beispielsweise das SSL-Protokoll auswählt, sind die Zertifikatsdetails zur Erstellung eines Konfigurationspakets erforderlich. Die Zertifikatsdetails sind jedoch möglicherweise zunächst nicht als Pflichtfeld festgelegt.
Die Parameterbedingung hat die folgenden Attribute:
-
target: Geben Sie den Zielparameter an, auf den Sie eine Aktion anwenden möchten. Sie können mehrere Zielparameter angeben. -
action: Geben Sie an, welche Aktion für die Zielparameter ausgeführt werden soll. Parameterbedingungen unterstützen die folgenden Aktionen:- Zulässige Werte erweitern
- Parameter anzeigen oder ausblenden
- Einen Standardwert festlegen
- Als Pflichtfeld festlegen
- Zulässige Werte festlegen
- Die Beschriftung des Parameters festlegen
- Die Beschreibung des Parameters festlegen
- Parameterbereich einklappen oder ausklappen
- Das Muster des Parameters festlegen
-
condition: Optional, geben Sie eine Bedingung an, um eine Aktion für die angegebenen Zielparameter anzuwenden. Wenn Sie keine Bedingung angeben, wird die Aktion direkt auf die Zielparameter angewendet. -
value: Legen Sie die Werte für das Attribut der Zielparameter in Abhängigkeit von der Aktion fest.
Hinweis:
Derzeit können die Parameterbedingungen nicht auf Parameter innerhalb von Listenobjekten angewendet werden.
‘augment-allowed-values’
Wenn die Aktion augment-allowed-values ist, erscheint der Zielparameter als Dropdown-Menü in der GUI. Das Dropdown-Menü wird mit den Werten gefüllt, die im value-Attribut der StyleBook-Definition definiert sind.
Beispiel:
parameters-conditions:
-
target: $parameters.rewritepolicy.action
action: augment-allowed-values
value: $parameters.rewriteaction
<!--NeedCopy-->
‘show’ oder ‘hide’
Wenn die Aktion show ist und die angegebene Bedingung True zurückgibt, erscheint der Zielparameter in der GUI.
Wenn die Aktion hide ist und die angegebene Bedingung True zurückgibt, verschwindet der Zielparameter aus der GUI.
Beispiel:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: show
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
Zunächst sind die Zertifikatsdetails für den Parameter security-settings ausgeblendet. Wenn ein Benutzer SSL- oder SSL-Bridge-Protokolle auswählt, erscheinen die Zertifikatsdetails.
‘set-default’
Wenn die Aktion set-default ist und die angegebene Bedingung True zurückgibt, wird der Wert des Zielparameters auf den Standardwert gesetzt.
Beispiel 1:
parameters-conditions:
-
target: $parameters.port
action: set-default
condition: $parameters.protocol == "SSL"
value: 443
-
target: $parameters.port
action: set-default
condition: $parameters.protocol != "SSL"
value: 80
<!--NeedCopy-->
Beispiel 2:
parameters-conditions:
-
target: $parameters.port
action: set-default
value: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->
Wenn ein Benutzer das SSL-Protokoll auswählt, wird der Standardportwert auf 443 gesetzt. Für andere Protokolle wird der Standardportwert auf 80 gesetzt. Beispiel 1 und 2 liefern das gleiche Ergebnis.
‘set-required’
Wenn die Aktion set-required ist und die angegebene Bedingung True zurückgibt, wird der Zielparameter zu einem Pflichtfeld für die Erstellung eines Konfigurationspakets.
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: set-required
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
Zunächst sind die Zertifikatsdetails für den Parameter security-settings möglicherweise nicht erforderlich. Wenn ein Benutzer SSL- oder SSL-Bridge-Protokolle auswählt, werden die Zertifikatsdetails zu einem Pflichtfeld für die Erstellung eines Konfigurationspakets.
‘set-allowed-values’
Wenn die Aktion set-allowed-values ist und die angegebene Bedingung True zurückgibt, können Sie für den Zielparameter nur die angegebenen Werte auswählen.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-allowed-values
value:
- "SSL"
condition: $parameters.lb-virtual-port == 443
<!--NeedCopy-->
Wenn ein Benutzer 443 als virtuellen Load-Balancer-Port angibt, erlaubt der Anwendungsname nur die Option SSL.
‘set-label’
Wenn die Aktion set-label ist und die angegebene Bedingung True zurückgibt, ändert sich die Beschriftung des Zielparameters zu dem angegebenen Text.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-label
value: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
<!--NeedCopy-->
Wenn ein Benutzer das Load-Balancer-Protokoll als TCP auswählt, ändert sich die Beschriftung der Anwendung zu TCPApp. Wenn der Benutzer eine andere Option auswählt, ändert sich die Beschriftung der Anwendung zu UDPApp.
‘set-description’
Wenn die Aktion set-description ist und die angegebene Bedingung True zurückgibt, ändert sich die Beschreibung des Zielparameters zu dem angegebenen Text. Diese Beschreibung erscheint im Tooltip eines Zielparameters.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-description
value: if-then-else($parameters.lb-service-type == "TCP", "Select a TCP application name","Select a UDP application name")
<!--NeedCopy-->
Wenn ein Benutzer das Load-Balancer-Protokoll als TCP auswählt, zeigt der Tooltip der Anwendung den Text: Select a TCP application name. Wenn der Benutzer eine andere Option auswählt, zeigt die Beschreibung der Anwendung Select a UDP application name.
‘collapse-pane’ oder ‘expand-pane’
Wenn die Aktion collapse-pane ist und die angegebene Bedingung True zurückgibt, wird der Bereich des Zielparameters in der GUI eingeklappt.
Wenn die Aktion expand-pane ist und die angegebene Bedingung True zurückgibt, wird der Bereich des Zielparameters in der GUI ausgeklappt.
Beispiel:
parameters-conditions:
-
target: $parameters.security-settings.cert-details
action: expand-pane
condition: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
Zunächst ist der Bereich der Zertifikatsdetails für den Parameter security-settings möglicherweise nicht ausgeklappt. Wenn ein Benutzer SSL- oder SSL-Bridge-Protokolle auswählt, klappt der Bereich der Zertifikatsdetails in der GUI aus.
‘set-pattern’
Wenn die Aktion set-pattern ist und die angegebene Bedingung True zurückgibt, wird das Feld des Zielparameters auf das angegebene Muster gesetzt.
Beispiel:
parameters-conditions:
-
target: $parameters.app-name
action: set-pattern
value: "[a-z]+"
<!--NeedCopy-->
In diesem Beispiel erlaubt der Anwendungsname nur alphabetische Kleinbuchstaben.
Verschachtelte Parameterbedingungen
In einer StyleBook-Definition können Sie eine Parameterbedingung innerhalb einer anderen Parameterbedingung angeben. Diese Bedingungen werden als verschachtelte Parameterbedingungen bezeichnet und verwenden ein Wiederholungskonstrukt, um diese Bedingungen zu definieren. Verschachtelte Parameterbedingungen sind nützlich, wenn Sie eine Aktion für einen Parameter von einem anderen Parameter aus anwenden möchten.
Beispiel:
parameters-conditions:
-
repeat: $parameters.lbvservers
repeat-item: lbvserver
parameters-conditions:
-
target: $lbvserver.port
action: set-allowed-values
condition: $lbvserver.protocol == "HTTPS"
value: $parameters.ssl-ports
<!--NeedCopy-->
In diesem Beispiel werden die Portwerte dynamisch gefüllt, wenn der Benutzer das HTTPS-Protokoll für einen virtuellen Load-Balancing-Server auswählt. Dies gilt für jeden virtuellen Load-Balancing-Server in der Liste.