組み込み関数は、StyleBook 内の式によって使用されます。
たとえば、組み込み関数 str()
を使用して、数値を文字列に変換できます。
str($parameters.order)
または、組み込み関数 int()
を使用して、文字列を整数に変換することもできます。
int($parameters.優先度)
以下は、StyleBook 式でサポートされている組み込み関数とその使用例のリストです。
str()
関数は、入力引数を文字列値に変換します。
許可される引数の型:
弦
番号
TCPポート
ブール値
IPアドレス
例:
"set-" + str(10)
関数は "set-10"
を返します。str(10)
関数は 10
を返します。str(1.1.1.1)
関数は 1.1.1.1
を返します。str(T rue)
関数は "T rue"
を返します。str(ADM)
関数は "mas"
を返します。int()
関数は、文字列、数値、IP アドレス、または tcpport
を引数として受け取り、整数を返します。
例:
int("10")
関数は 10
を返します。int(10)
関数は 10
を返します。int(ip('0.0.4.1'))
関数は 1025
を返します。bool()
関数は任意の型を引数として受け取ります。 引数値が false
、空、または存在しない場合、この関数は false
を返します。
それ以外の場合は、 true
を返します。
例:
bool(true)
関数は true
を返します。bool(false)
関数は false
を返します。bool($parameters.a)
関数は、 $parameters.a
が false
、空、または存在しない場合に false
を返します。len()
関数は、文字列またはリストを引数として受け取り、文字列内の文字数またはリスト内の項目数を返します。
例1:
置換を次のように定義します。
アイテム: ["123", "abc", "xyz"]
len($substitutions.items)
関数は 3
を返します。
例2:
len("NetScaler Console")
関数は 10
を返します。
例3:
$parameters.vips
の値が ['1.1.1.1', '1.1.1.2', '1.1.1.3']
の場合、 len($parameters.vips)
関数は 3
を返します。
min()
関数は、リストまたは一連の数値、あるいは tcp-ports
を引数として受け取り、最小の項目を返します。
一連の数字/TCP ポートの例:
min(80, 100, 1000)
関数は 80
を返します。min(-20, 100, 400)
関数は -20
を返します。min(-80, -20, -10)
関数は -80
を返します。min(0, 100, -400)
関数は -400
を返します。数字/TCP ポートのリストを使用した例:
サポート $parameters.ports
は tcp-ports
のリストであり、値は次のとおりです: [80, 81, 8080]
。
min($parameters.ports)
関数は 80
を返します。
max()
関数は、リストまたは一連の数値、あるいは tcp-ports
を引数として受け取り、最大の項目を返します。
一連の数字/TCP ポートの例:
max(80, 100, 1000)
関数は 1000
を返します。max(-20, 100, 400)
関数は 400
を返します。max(-80, -20, -10)
関数は -10
を返します。max(0, 100, -400)
関数は 100
を返します。数字/TCP ポートのリストを使用した例:
サポート $parameters.ports
は tcp-ports
のリストであり、値は次のとおりです: [80, 81, 8080]
。
max($parameters.ports)
関数は 8080
を返します。
bin()
関数は数値を引数として受け取り、その数値をバイナリ形式で表した文字列を返します。
表現の例:
bin(100)
関数は 0b1100100
を返します。
oct()
関数は数値を引数として受け取り、その数値を 8 進形式で表した文字列を返します。
表現の例:
oct(100)
関数は 0144
を返します。
hex()
関数は数値を引数として受け取り、その数値を 16 進形式で表す小文字の文字列を返します。
表現の例:
hex(100)
関数は 0x64
を返します。
lower()
関数は文字列を引数として受け取り、同じ文字列を小文字で返します。
例:
lower("ADM")
関数は adm
を返します。
upper()
関数は文字列を引数として受け取り、同じ文字列を大文字で返します。
例:
upper("NetScaler Console")
関数は NetScaler Console
を返します。
sum()
関数は、数値のリストまたは tcpports
を引数として受け取り、リスト内の数値の合計を返します。
例1:
置換を次のように定義すると: 置換:
数字のリスト = [11, 22, 55]
sum($substitutions.list-of-numbers)
関数は 88
を返します。
例2:
$parameters.ports
が [80, 81, 82]
の場合、 sum($parameters.ports)
関数は 243
を返します。
pow()
関数は 2 つの数値を引数として受け取り、最初の引数を 2 番目の引数で累乗した数値を返します。
例:
pow(3,2)
関数は 9
を返します。
ip()
関数は、整数、文字列、または IP アドレスを引数として受け取り、入力値に基づいて IP アドレスを返します。
例:
ip
関数で IP アドレスを指定します。
ip(3.1.1.1)
関数は 3.1.1.1
を返します。
ip
関数で文字列を指定します。
ip('2.1.1.1')
関数は 2.1.1.1
を返します。
ip
関数に整数を指定します。
ip(12)
関数は 0.0.0.12
を返します。
ip
関数で整数を文字列として指定すると、入力と同等の IP アドレスが返されます。
ip('1025')
関数は 0.0.4.1
を返します。
この関数は整数の加算と減算の演算もサポートし、結果の IP アドレスを返します。
追加: ip(1025) + ip(12)
関数は 0.0.4.13
を返します。
減算: ip('1025') - ip(12)
関数は 0.0.3.245
を返します。
加算と減算を組み合わせる: ip('1.1.1.1') + ip('1.1.1.1') – ip(2)
は 2.2.2.0
を返します。
base64.encode()
関数は文字列引数を受け取り、base64 でエンコードされた文字列を返します。
例:
base64.encode("abcd")
関数は YWJjZA==
を返します。
base64.decode
関数は、base64 でエンコードされた文字列を引数として受け取り、デコードされた文字列を返します。
例:
base64.decode("YWJjZA==")
関数は abcd
を返します。
exists()
関数は、任意の型の引数を受け取り、ブール値を返します。 戻り値は、入力に何らかの値がある場合、 True
になります。 入力引数に値がない場合 (つまり、値がない)、戻り値は False
になります。
$parameters.monitor
はオプションのパラメーターであることに留意してください。 構成パックの作成時にこのパラメーターに値を指定すると、 ($parameters.monitor)
関数は True
を返します。
それ以外の場合は、 False
を返します。
filter()
関数は 2 つの引数を取ります。
引数 1: 1 つの引数を取り、ブール値を返す置換関数。
引数2: リスト。
この関数は、最初の 引数で置換関数に渡されたときに各要素が True
と評価される元のリストのサブセットを返します。
例:
次のような置換関数を考えてみましょう。
代替品:
x(a): $a != 81
この関数は、入力値が 81
と等しくない場合に True を返します。 それ以外の場合は、 False
を返します。
たとえば、$parameters.ports
が [81, 80, 81, 89]
であるとします。
フィルター ($substitutions.x、 $parameters.ports)
は、リストから 81
のすべての出現を削除して [80, 89]
を返します。
関数 if-then-else()
は 3 つの引数を取ります。
引数1: ブール式
引数2: 任意の式
引数3: 任意の式(オプション)
引数 1 の式が True
と評価された場合、関数は引数 2 として指定された式の値を返します。
それ以外の場合、引数 3 が指定されると、関数は引数 3 の式の値を返します。
引数 3 が指定されていない場合、関数は または
を返します。
例1:
if-then-else($parameters.servicetype == HTTP, 80, 443)
関数は、 $parameters.servicetype
の値が HTTP
の場合、 80
を返します。 それ以外の場合、関数は 443
を返します。
例2:
if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport)
関数は、 $parameters.servicetype
の値が HTTP
の場合、 $parameters.hport
の値を返します。
それ以外の場合、関数は $parameters.sport
の値を返します。
例3:
if-then-else($parameters.servicetype == HTTP, 80)
は、 $parameters.servicetype
の値が HTTP
の場合、 80
を返します。
それ以外の場合、関数は値を返しません。
join()
関数は 2 つの引数を取ります。
引数1: 数字、 tcp-ports
、文字列、またはIPアドレスのリスト
引数2: 区切り文字列(オプション)
この関数は、引数 1 として指定されたリストの要素を文字列に結合します。各要素は、引数 2 として指定された区切り文字列で区切られます。 引数 2 が指定されていない場合、リスト内の要素は 1 つの文字列として結合されます。
例:
$parameters.ports
は [81, 82, 83]
です。
区切り文字引数あり:
join($parameters.ports, '-')
関数は 81-82-83
を返します。
区切り引数なし:
join($parameters.ports)
関数は 818283
を返します。
split()
関数は、指定された区切り文字に応じて入力文字列を複数のリストに分割します。 区切り文字が指定されていないか空白 (''
) の場合、この関数はスペースを区切り文字と見なし、文字列をリストに分割します。
例:
split('Example_string_split', 's')
関数は ['Example_','tring_','plit']
を返します。
split('Example string split')
関数は ['Example','string','split']
を返します。
split('Example string split', '')
関数は ['Example','string','split']
を返します。
split('Example string')
関数は ['Example','string']
を返します。
この関数は連続するスペースを 1 つのスペースとして扱います。
map()
関数は 2 つの引数を取ります。
引数1: 任意の関数
引数 2: 要素のリスト。
この関数は、リスト内の各要素が引数 2 の対応する要素に map()
関数 (引数 1) を適用した結果であるリストを返します。
引数1で許可される関数:
1 つの引数を取る組み込み関数:
base64.encode、base64.decode、bin、bool、exists、hex、int、ip、len、lower、upper、oct、quotewrap、str、trim、upper、url.encode、url.decode
少なくとも 1 つの引数を取る置換関数。
例:
$parameters.numsが [81, 82, 83]
であるとします。
組み込み関数strを使用したマップ
map(str, $parameters.nums)
関数は ["81", "82", "83"]
を返します。
map 関数の結果は、入力リスト ($parameters.nums) 内の対応する要素に str 関数を適用することによって計算された各要素が文字列である文字列のリストです。
置換関数を使用したマップ
代替品:
10を加算(ポート): $port + 10
表現:
map($substitutions.add-10, $parameters.nums)
関数は数値のリストを返します: [ 91, 92, 93 ]
このマップ関数の結果は数値のリストです。 各要素は、入力リスト ($parameters.nums)
内の対応する要素に置換関数 $substitutions.add-10
を適用することによって計算されます。
quotewrap()
関数は文字列を引数として受け取り、入力値の前後に二重引用符を追加した文字列を返します。
例:
quotewrap("ADM")
関数は "mas"
を返します
replace()
関数は 3 つの引数を取ります。
引数 1: 文字列
または次の組み込み型のリスト:
弦
番号
IPアドレス
TCPポート
ブール値
引数2: 引数1で指定された型と一致する単一の値または値のリスト
引数3: 引数1で指定したものと同じ型の単一の値(オプション)
replace()
関数は、引数 1 内のすべての引数 2 を引数 3 に置き換えます。
引数 3 が指定されていない場合は、引数 2 のすべての出現が引数 1 から削除されます。
例:
replace('abcdef', 'def', 'xyz')
関数は abcxyz
を返します。
def
のすべての出現は xyz
に置き換えられます。
replace('abcdefabc', 'def')
は abcabc
を返します。
引数 3 がないため、結果の文字列から def
が削除されます。
replace('An#example@to%replace!characters', ['@', '#', '!', '%'], '_')
関数は An_example_to_replace_characters
を返します。
出力文字列には、 ['@', '#', '!', '%']
で指定された文字の代わりにアンダースコア (_) が含まれます。
replace([10.10.10.1, 10.10.10.2, 10.10.10.3, 10.10.10.4], [10.10.10.2, 10.10.10.4])
関数は [10.10.10.1, 10.10.10.3]
を返します。
引数 3 がないため、結果の IP アドレス リストから 10.10.10.2
と 10.10.10.4
が削除されます。
replace([8080, 8081, 8082, 8083, 8084], 8083, 80)
関数は [8080, 8081, 8082, 80, 8084]
を返します。
8083
のすべての出現は 80
に置き換えられます。
trim()
関数は、入力文字列の先頭と末尾の空白を取り除いた文字列を返します。
例:
trim(' abc ')
関数は abc
を返します。
truncate()
関数は 2 つの引数を取ります。
引数1: 文字列
引数2: 数値
この関数は、引数 1 の入力文字列を引数 2 で指定された長さに切り捨てた文字列を返します。
例:
truncate('NetScaler Console', 6)
は Citrix
を返します。
distinctive()
関数は、リスト入力から一意の項目を抽出します。
例: $parameters.input_list
が ['ADM', 'ADC', 'VPX', 'ADC', 'ADM', 'CPX']
の場合、 distinctive($parameters.input_list)
関数は ['ADM', 'ADC', 'VPX', 'CPX']
を返します。
url.encode()
関数は、RFC 3986 に従って ASCII 文字セットを使用して文字が変換された文字列を返します。
例:
url.encode("a/b/c")
関数は a%2Fb%2Fc
を返します。
url.decode()
関数は、URL エンコードされた引数を RFC 3986 に従って通常の文字列にデコードした文字列を返します。
例:
url.decode("a%2Fb%2Fc")
関数は a/b/c
を返します。
is-ipv4()
関数は IP アドレスを引数として受け取り、IP アドレスが IPv4 形式である場合はブール値 True
を返します。
is-ipv4(10.10.10.10)
関数は True
を返します
is-ipv6()
関数は IP アドレスを引数として受け取り、IP アドレスが IPv6 形式である場合はブール値 True
を返します。
is-ipv6(2001:DB8::)
関数は True
を返します
startswith()
関数は、文字列が指定されたプレフィックスで始まるかどうかを判断します。 この関数には 2 つの必須の文字列引数が必要です。
startswith(str, sub_str)
この関数は、文字列 (str
) が部分文字列 (sub_str
) で始まる場合に True
を返します。
例:
startswith('Citrix', 'Ci')
関数は True
を返します。startswith('Citrix', 'iC')
関数は False
を返しますstartswith('Citrix', 'Ab')
関数は False
を返しますendswith()
関数は、文字列が指定されたサフィックスで終わるかどうかを判断します。 この関数には 2 つの必須の文字列引数が必要です。
終了文字列(str, sub_str)
この関数は、文字列 (str
) が部分文字列 (sub_str
) で終わる場合に True
を返します。
例:
startswith('Citrix', 'ix')
関数は True
を返します。startswith('Citrix', 'Ix')
関数は False
を返します。startswith('Citrix', 'ab')
関数は False
を返します。contains()
関数は、文字列に指定された部分文字列が含まれているかどうかを判断します。 この関数には 2 つの必須の文字列引数が必要です。
含まれる(str, sub_str)
この関数は、部分文字列 (sub_str
) が文字列 (str
) 内のどこかに含まれている場合に True
を返します。
例:
contains('Citrix', 'tri')
関数は True
を返します。contains('Citrix', 'Ci')
関数は True
を返します。contains('Citrix', 'ti')
関数は False
を返します文字列から部分文字列を抽出するには、 substring()
関数を使用します。
部分文字列(str, 開始インデックス, 終了インデックス)
この関数には、2 つの必須引数と 1 つのオプションの整数引数が必要です。
str
(必須)開始インデックス
(必須)end_index
(オプション)この関数は、指定されたインデックス位置の間にある文字列 (str
) から部分文字列を返します。 終了インデックス位置を指定しない場合は、関数は開始インデックスから文字列の末尾までの部分文字列を抽出します。
注記
end_index
を指定すると、部分文字列からend_index
の位置にある文字が除外されます。
例:
substring('Citrix', 2)
関数は trix
を返します。
部分文字列 ('Citrix', 10)
関数は ("
) を返します。
この例では、関数は無効な start_index
位置を持っているため、空の文字列を返します。
substring('Citrix', 2, 4)
関数は tr
を返します。
この例では、関数は 2 から 4 のインデックス位置の間の文字を抽出します。
substring('Citrix', -3)
関数は rix
を返します。
文字列の末尾にある文字を抽出する場合は、 start_index
引数に負の値を指定します。
この例では、関数は文字列の最後の 3 文字を含む部分文字列を抽出します。
multiple()
関数は 2 つの引数を取ります。
引数 1:number
、string
、boolean
、ipaddress
、tcp-port
、または password
。
引数2: の数
multiple(argument1, argument2)
関数は、引数 1 の多数のコピーを含むリストを返します。 コピー数は引数 2 に渡された数と同じになります。
例:
multiple(10.10.10.10, 3)
関数は [10.10.10.10, 10.10.10.10, 10.10.10.10]
を返します。
multiple(8080, 4)
関数は [8080, 8080, 8080, 8080]
を返します。
reverse() 関数は、項目のリストを引数として受け取り、同じ項目を逆の順序で並べたリストを返します。
引数には次の組み込み型のリストを指定できます。
弦
番号
IPアドレス
ipネットワーク
TCPポート
ブール値
パスワード
物体
ファイル
証明書ファイル
キーファイル
証明書キー
例: