式
$parameters.appname + "-mon"
appname という名前のパラメーターを取得し、それを文字列 -mon と連結します。
and、false、in、not、true、および or です。
算術式
-
加算 (+)
-
減算 (-)
-
乗算 (*)
-
除算 (/)
-
モジュロ (%)
-
2 つの数値を加算する: $parameters.a + $parameters.b
-
2つの数値を乗算する: $parameters.a * 10
-
ある数値を別の数値で除算した後の剰余を求める:
15%10 は 5 になります
文字列式
-
2つの文字列を連結する (+)
リスト式
関係式
-
== : 2つのオペランドが等しいかどうかをテストし、等しい場合はtrueを返し、そうでない場合はfalseを返します。
-
!= : 2つのオペランドが異なるかどうかをテストし、異なる場合はtrueを返し、そうでない場合はfalseを返します。
-
\> : 最初のオペランドが2番目のオペランドより大きい場合、trueを返し、それ以外の場合はfalseを返します。
-
\>= : 最初のオペランドが2番目のオペランド以上の場合、trueを返し、それ以外の場合はfalseを返します。
-
\< : 最初のオペランドが2番目のオペランドより小さい場合、trueを返し、それ以外の場合はfalseを返します。
-
\<= : 最初のオペランドが2番目のオペランド以下の場合、trueを返し、それ以外の場合はfalseを返します。
-
等価演算子の使用:
$parameters.name = = "abcd" -
不等価演算子の使用:
$parameters.name != "default" -
その他の関係演算子の例
-
10 > 9 -
10 >= 10 -
0 < 9 -
10 <= 9 -
10 == 10 -
10 != 1
-
論理式 - ブール
-
and: 論理演算子「and」です。両方のオペランドが真の場合、結果は真になり、それ以外の場合は偽になります。
-
or: 論理演算子「or」です。オペランドのいずれかが真の場合、結果は真になり、それ以外の場合は偽になります。
-
not: 単項演算子です。オペランドが真の場合、結果は偽になり、その逆も同様です。
-
in: 最初の引数が2番目の引数の部分文字列であるかどうかをテストします
-
in: 項目がリストの一部であるかどうかをテストします
tcp-port を数値にキャストし (int() 組み込み関数を使用)、IPアドレスを文字列にキャストできます (str() 組み込み関数を使用)。
-
演算子の前:
space,tab,comma,(,),[,] -
演算子の後:
space,tab,(,[
-
abc + def -
100 % 10 -
10 > 9 -
$item in $parameters.some-list
スプラット式
[*] を使用すると、複雑なリストから特定の属性をすべての反復処理で取得する簡単な方法が提供されます。StyleBook の定義にスプラット式を含めることができるようになりました。
list[*].attribute
$parameters.server-members[*].hostname
$parameters.server-members[*].sub-domains[*].name
逐語的文字列式
~{string}~
}~ を使用しないでください。このシーケンスは、逐語的文字列の終わりを示します。
~{HTTP.REQ.COOKIE.VALUE("jsessionid") ALT HTTP.REQ.URL.BEFORE_STR("=").AFTER_STR(";jsessionid=") ALT HTTP.REQ.URL.AFTER_STR(";jsessionid=")}~
ターゲット式
$current-target 式を使用できます。ターゲット NetScaler インスタンスの IP アドレスを具体的に参照するには、この式を次のように使用します。
$current-target.ip
components:
-
name: lb-comp
type: ns::lbvserver
properties:
name: $current-target.ip + "-lbvserver"
lbvserver の名前はターゲット NetScaler インスタンスの IP アドレスを使用しています。
式の型検証
lbvserver StyleBook のポートプロパティの予期される型は tcp-port です。NetScaler Console では、型検証はコンパイル時 (インポート時) に行われます。コンパイラは、文字列と tcp-port が互換性のない型であると判断し、そのため StyleBook コンパイラはエラーを表示し、StyleBook のインポートまたは移行に失敗します。
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: str("80")
servicetype: HTTP
port: 80
lb-sg-binding-compコンポーネントのnameプロパティに割り当てられた式は$components.lbvserver-comp.properties.lbvservernameです。しかし、lbvserver-compコンポーネントにはlbvservernameというプロパティはありません。
Components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: 80
servicetype: HTTP
-
name: sg-comp
type: ns::servicegroup
properties:
servicegroupname: mysg
servicetype: HTTP
-
name: lb-sg-binding-comp
type: ns::lbvserver_servicegroup_binding
condition: $parameters.create-binding
properties:
name: $components.lbvserver-comp.properties.lbvservername
servicegroupname: $components.sg-comp.properties.servicegroupname
データ型の暗黙的な型変換
-
string型とnumber型の2つの変数を加算(+)すると、出力データ型はstringに設定されます。
$parameters.appname + '_' + $parameters.app_instance_num
-
string型とipaddress型の2つの変数を加算(+)すると、出力データ型はstringに設定されます。
$parameters.appname + '_' + $parameters.instance_ip
-
ipaddress型とnumber型の2つの変数を加算(+)すると、出力データ型はipaddressに設定されます。
$parameters.instance_ip + $parameters.number
-
ipaddress型とnumber型の2つの変数を減算(-)すると、出力データ型はipaddressに設定されます。
$parameters.instance_ip - $parameters.number
-
string型とnumber型の2つの変数を乗算(*)すると、出力データ型はstringに設定されます。
$parameters.dummy_str * $parameters.count
-
変数が
stringデータ型として定義されている場合、割り当てられた値は定義されたデータ型に変換されます。
name: $parameters.port * 3
-
変数が
portnumberデータ型として定義されている場合、割り当てられた値は例外を除いてportnumberデータ型に変換されます。
port: $index + $parameters.lower_limit
リストのインデックス付け
| 式 | 説明 |
$components.test-lbs[0] |
thetest-lbsコンポーネントの最初の項目を参照します |
$components.test-lbs[0].properties.p1 |
test-lbsコンポーネントの最初の項目のプロパティp1を参照します |
$components.lbcomps[0].outputs.servicegroups[1].properties.servicegroupname |
lbcompsコンポーネントの最初の項目からの出力である、servicegroupsコンポーネントの2番目の項目のプロパティservicegroupnameを参照します |
StyleBooksにおけるポリシー式
StyleBooks GUIでポリシー式エディターを有効にする
is_policy_expression GUI属性を指定します。この設定を有効にすると(trueに設定すると)、このパラメーターの値を入力する際に式エディターを呼び出すことができます。
parameters:
-
name: expression
type: string
label: Expression
required: true
gui:
is_policy_expression: true
ポリシー式を作成および構築する
-
Applications > Configurations > StyleBooksに移動します。StyleBooksページには、NetScaler Consoleで利用可能なすべてのStyleBooksが表示されます。
-
パラメーターにポリシー式を含むStyleBookを選択します。
-
Create Configurationをクリックします。Create Configurationページで、このStyleBookで定義されているすべてのパラメーターの値を入力します。
-
Expressionsフィールドの横にあるアイコンをクリックします。Create an expressionページが表示されます。

-
Create an expressionで、直感的なドロップダウンを使用してポリシー式を構築します。Submitをクリックします。
カスタムポリシー式を作成する場合は、EPA EditorまたはExpression Editorをクリックして式を構築します。Preview Expressionsで式を確認し、Submitをクリックします。 -
構成を展開するターゲットのNetScalerインスタンスを選択し、Submitをクリックします。式を含む構成パック(/en-us/netscaler-console-service/media/sample-config-pack-expressions.png)