パラメータ条件は、StyleBook 定義内の特定のパラメータの動作を変更するために使用されます。 StyleBook 定義内のパラメーターは、構成パックを作成するために提供される入力です。 定義内のパラメータ条件を定義するには、 パラメータ条件
を使用します。
StyleBook 定義では、パラメータに多くの制約を設定できます。 パラメータ条件は、ユーザーがパラメータの動作を変更したときに競合を解決するために使用されます。 たとえば、ユーザーが SSL プロトコルを選択した場合、構成パックを作成するには証明書の詳細が必要になります。 ただし、最初は証明書の詳細が必須フィールドとして設定されていない可能性があります。
パラメータ条件には次の属性があります。
target
: アクションを適用するターゲットパラメータを指定します。 複数のターゲットパラメータを指定できます。
アクション
: ターゲットパラメータに対して実行するアクションを指定します。 パラメータ条件は次のアクションをサポートします。
条件
: オプション。指定されたターゲットパラメータに対してアクションを適用するための条件を指定します。 条件を指定しない場合は、アクションはターゲット パラメータに直接適用されます。
値
: アクションに応じてターゲット パラメータ属性の値を設定します。
注記:
現在、リスト オブジェクト内のパラメータにはパラメータ条件を適用できません。
アクションが augment-allowed-values
の場合、ターゲット パラメータが GUI にドロップダウン メニューとして表示されます。 ドロップダウン メニューは、StyleBook 定義の 値
属性で定義された値で設定されます。
例:
パラメーター条件:
-
ターゲット: $parameters.rewritepolicy.action
アクション: 許容値の増加
値: $parameters.rewriteaction
<!--NeedCopy-->
アクションが show
で、指定された条件が True
を返す場合、対象のパラメータが GUI に表示されます。
アクションが 非表示
で、指定された条件が True
を返す場合、対象のパラメータが GUI から消えます。
例:
パラメーター条件:
-
ターゲット: $parameters.security-settings.cert-details
アクション: show
条件: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初、 security-settings
パラメータの証明書の詳細は非表示になっています。 ユーザーが SSL または SSL ブリッジ プロトコルを選択すると、証明書の詳細が表示されます。
アクションが set-default
で、指定された条件が True
を返す場合、ターゲット パラメータの値はデフォルト値に設定されます。
例1:
パラメーター条件:
-
ターゲット: $parameters.port
アクション: set-default
条件: $parameters.protocol == "SSL"
値: 443
-
ターゲット: $parameters.port
アクション: set-default
条件: $parameters.protocol != "SSL"
値: 80
<!--NeedCopy-->
例2:
パラメーター条件:
-
ターゲット: $parameters.port
アクション: set-default
値: if-then-else($parameters.protocol == "SSL", 443, 80)
<!--NeedCopy-->
ユーザーが SSL プロトコルを選択すると、デフォルトのポート値は 443
に設定されます。 その他のプロトコルの場合、デフォルトのポート値は 80
に設定されています。 例 1 と例 2 では同じ結果が得られます。
アクションが set-required
で、指定された条件が True
を返す場合、ターゲット パラメータは構成パックを作成するための必須フィールドになります。
パラメーター条件:
-
ターゲット: $parameters.security-settings.cert-details
アクション: set-required
条件: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初は、 security-settings
パラメータに証明書の詳細が必要ない場合があります。 ユーザーが SSL または SSL ブリッジ プロトコルを選択すると、構成パックを作成するために証明書の詳細が必須フィールドになります。
アクションが set-allowed-values
で、指定された条件が True
を返す場合、ターゲット パラメータでは指定された値のみを選択できます。
例:
パラメーター条件:
-
ターゲット: $parameters.app-name
アクション: set-allowed-values
値:
- "SSL"
条件: $parameters.lb-virtual-port == 443
<!--NeedCopy-->
ユーザーがロードバランサーの仮想ポートとして 443
を指定すると、アプリケーションの名前では SSL オプションのみが許可されます。
アクションが set-label
で、指定された条件が True
を返す場合、ターゲット パラメータのラベルが指定されたテキストに変更されます。
例:
パラメーター条件:
-
ターゲット: $parameters.app-name
アクション: set-label
値: if-then-else($parameters.lb-service-type == "TCP", "TCPApp","UDPApp")
<!--NeedCopy-->
ユーザーがロードバランサ プロトコルを TCPとして選択すると、アプリケーションのラベルは TCPAppに変更されます。 ユーザーが別のオプションを選択した場合、アプリケーションのラベルは UDPAppに変更されます。
アクションが set-description
で、指定された条件が True
を返す場合、ターゲット パラメータの説明が指定されたテキストに変更されます。 この説明は、ターゲット パラメータのツールヒントに表示されます。
例:
パラメータ条件:
-
ターゲット: $parameters.app-name
アクション: set-description
値: if-then-else($parameters.lb-service-type == "TCP", "TCPアプリケーション名を選択","UDPアプリケーション名を選択")
<!--NeedCopy-->
ユーザーがロードバランサー プロトコルとして TCPを選択すると、アプリケーションのツールヒントに次のテキストが表示されます: TCP アプリケーション名を選択してください
。 ユーザーが別のオプションを選択した場合、アプリケーションの説明に「 UDP アプリケーション名を選択してください
」と表示されます。
アクションが collapse-pane
で、指定された条件が True
を返す場合、ターゲット パラメータのペインが GUI で折りたたまれます。
アクションが expand-pane
で、指定された条件が True
を返す場合、ターゲット パラメータのペインが GUI で展開されます。
例:
パラメーター条件:
-
ターゲット: $parameters.security-settings.cert-details
アクション: expand-pane
条件: $parameters.protocol in ["SSL", "SSL-BRIDGE"]
<!--NeedCopy-->
最初は、 security-settings
パラメータの証明書詳細ペインが展開されていない可能性があります。 ユーザーが SSL または SSL ブリッジ プロトコルを選択すると、GUI に証明書の詳細ペインが展開されます。
アクションが set-pattern
で、指定された条件が True
を返す場合、ターゲット パラメータ フィールドは指定されたパターンに設定されます。
例:
パラメーター条件:
-
ターゲット: $parameters.app-name
アクション: set-pattern
値: "[az]+"
<!--NeedCopy-->
この例では、アプリケーションの名前には小文字のアルファベット文字のみが許可されます。
StyleBook 定義では、パラメーター条件内にパラメーター条件を指定できます。 これらの条件はネストされたパラメータ条件と呼ばれ、繰り返し構造を使用してこれらの条件を定義します。 ネストされたパラメータ条件は、別のパラメータからパラメータのアクションを適用する場合に便利です。
例:
パラメーター条件:
-
繰り返し: $parameters.lbvservers
繰り返し項目: lbvserver
パラメーター条件:
-
ターゲット: $lbvserver.port
アクション: set-allowed-values
条件: $lbvserver.protocol == "HTTPS"
値: $parameters.ssl-ports
<!--NeedCopy-->
この例では、ユーザーが負荷分散仮想サーバーに対して HTTPS プロトコルを選択すると、ポート値が動的に設定されます。 また、リスト内の各負荷分散仮想サーバーに適用されます。