Citrix Application Delivery Management 13.0

組み込み関数

StyleBookの式では組み込み関数が使用できます。

たとえば、組み込み関数str()を使用して数字を文字列に変換できます。

str($parameters.order)

また、組み込み関数int()を使用して文字列を整数に変換することもできます。

int($parameters.priority)

以下は、StyleBookの式でサポートされる組み込み関数とその使用例の一覧です。

str()

str()関数は、文字列値に入力引数を変換します。

許可される引数の種類は次のとおりです。

  • string
  • number
  • TCP-port
  • boolean
  • IP address

:

  • “set-“ + str(10) returns “set-10”
  • str(10) returns “10”
  • str(1.1.1.1) returns “1.1.1.1”
  • str(T rue) returns “T rue”
  • str(mas) returns “mas”

int()

int () 関数は、文字列、数値、または tcpport を引数として受け取り、整数を返します。

:

  • int(“10”) returns 10
  • int(10) returns 10

bool()

bool()関数は引数として任意の型を取ります。引数の値が false、空、または存在しない場合、この関数は false を返します。

それ以外の場合はtrueを返します。

:

  • bool(true) returns “true”
  • bool(false) returns “false”
  • bool($parameters.a) returns false if the
  • $parameters.a is false, empty, or not present.

len()

len () 関数は、引数として文字列またはリストを受け取り、文字列内の文字数またはリスト内の項目数を返します。

例 1:

次のように置換を定義した場合、

items: [“123”, “abc”, “xyz”]

len($substitutions.items) returns 3

例 2:

len(“netscaler mas”) returns 13

例 3:

len($parameters.vips) returns 3 if $parameters.vip is assigned a value [‘1.1.1’, ‘1.1.1.2’, ‘1.1.1.3’]

min()

min()関数は、引数としてリストまたは一連の数値またはtcp-portsを受け取り、最小の項目を返します。

一連の番号/tcp ポートを使用する例

  • min(80, 100, 1000) returns 80
  • min(-20, 100, 400) returns -20
  • min(-80, -20, -10) returns -80
  • min(0, 100, -400) returns -400

番号/tcp-ポートのリストを持つ例

  • サポート$parameters.ports.tcpポートのリストであり、値を持っています: [80, 81, 8080]。

    min($parameters.ports) returns 80.

max()

max () 関数は、引数としてリストまたは一連の数値またはtcp-portsを受け取り、最大の項目を返します。

一連の番号/tcp ポートを使用する例

  • max(80, 100, 1000) returns 1000
  • max(-20, 100, 400) returns 400
  • max(-80, -20, -10) returns -10
  • max(0, 100, -400) returns 100

番号/tcp-ポートのリストを持つ例

  • サポート$parameters.portsはTCPポートのリストであり、値を持っています: [80, 81, 8080]。

    max($parameters.ports) returns 8080.

bin()

bin () 関数は引数として数値を受け取り、バイナリ形式で数値を表す文字列を返します。

式の例:

bin(100) returns “0b1100100”

oct()

oct () 関数は引数として数値を受け取り、8 進数形式で数値を表す文字列を返します。

式の例:

oct(100) returns “0144”

hex()

hex () 関数は引数として数値を受け取り、16 進数形式で数値を表す小文字の文字列を返します。

式の例:

hex(100) returns “0x64”

lower()

lower () 関数は、引数として文字列を受け取り、同じ文字列を小文字で返します。

:

lower(“MAS”) returns “mas”

upper()

upper () 関数は、引数として文字列を受け取り、同じ文字列を大文字で返します。

:

upper(“netscaler_mas”) returns “NET SCALER_MAS”

sum()

sum () 関数は、引数として数値または tcpports のリストを受け取り、リスト内の数値の合計を返します。

例 1:

置換を次のように定義した場合: 置換:

  • list-of-numbers:

    • 11
    • 22
    • 55

    sum($substitutions.list-of-numbers) returns 88

例 2:

If $parameters.ports is [80, 81, 82], sum($parameters.ports) returns 243

pow()

pow()関数は、引数として2つの数値を取り、 2番目の1の累乗に最初の引数を表す数値を返します。

:

pow(3,2) returns 9

ip()

ip関数は引数として文字列またはipaddressを受け取り、入力値に基づくIPアドレスを返します。

:

  • ip(“2.1.1.1”) returns “2.1.1.1”
  • ip(3.1.1.1) returns “3.1.1.1”

base64.encode()

base64.encode () 関数は文字列引数を受け取り、base64 でエンコードされた文字列を返します。

:

base64.encode(“abcd”) returns “YWJjZA==”

base64.decode()

Base64 Decode関数は引数としてBase64でエンコードされた文字列を受け取り、デコードされた文字列を返します。

:

base64.decode(“YWJjZA==”) returns “abcd”

exists()

exists関数は任意の種類の引数を受け取り、ブーリアン型を返します。入力にいずれかの値がある場合、戻り値はTrueです。戻り値は False です。入力引数に値がない場合 (値がない場合)。

$parameters.monitorがオプションのパラメーターであるとします。構成パックを作成するときにこのパラメーターに値を入力すると、exists($parameters.monitor)はTrueを返します。

それ以外の場合はFalseを返します。

filter()

filter () 関数は 2 つの引数を取ります。

引数1:1つの引数を受け取ってブーリアン型の値を返す置換関数です。

引数2:一覧です。

この関数は、最初の 引数で置換関数に渡されると、各要素が「True」と評価される元のリストのサブセットを返します。

:

置換関数を次のように定義したとします。

substitutions:

x (a): $a!= 81

入力値が81でない場合、この関数はTrueを返します。それ以外の場合はFalseを返します。

以下を想定します。

$parameters.ports is [81, 80, 81, 89]

filter($substitutions.x, $parameters.ports) returns [80, 89] by removing all occurrences of 81 from the list.

if-then-else()

関数if-then-else()は、3つの引数を取ります。

引数1:ブール式

引数2:任意の式

引数3:任意の式(オプション)

引数1の式でTrueに評価された場合、この関数は引数2として指定された式の値を返します。

それ以外の場合は、引数3が指定されている場合、この関数は引数3の式の値を返します。

引数3が指定されていない場合、この関数は値を返しません。

例 1:

if-then-else($parameters.servicetype == HTTP, 80, 443) returns “80” if $parameters.servicetype has value “HTTP.” それ以外の場合、関数は 「443」を返します。

例 2:

if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport) returns the value of “$parameters.hport” if $parameters.servicetype has value “HTTP.”

それ以外の場合、関数は「$parameters.sport」の値を返します。

例 3:

if-then-else($parameters.servicetype == HTTP, 80) returns “80” if $parameters.servicetype has value “HTTP.”

それ以外の場合、関数は値を返しません。

join()

join () 関数は 2 つの引数を取ります。

引数1:数字、tcp-port、文字列、またはipaddressの一覧

引数2:区切り文字列(オプション)

この関数は、引数1として指定された一覧の要素を1つの文字列に結合します。この文字列の各要素は、引数2として指定された区切り文字列で区切られます。引数2が指定されない場合、一覧の要素は1つの文字列として結合されます。

:

  • $parameters.ports is [81, 82, 83].

    • デリミタ引数付き:

      join($parameters.ports, ‘-‘) returns “81-82-83”

    • デリミタ引数なし:

      join($parameters.ports) returns “818283”

map()

map関数は2つの引数を取ります。

引数1:任意の関数

引数2:要素の一覧

この関数は、リスト内の各要素は、引数2の対応する要素にmapfunction(引数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つ以上の引数を受け取る置換関数。

:

Suppose $parameters.nums is [81, 82, 83].

  • Map using a built-in function, str

    map(str, $parameters.nums) returns [“81”, “82”, “83”]

    map関数の結果は文字列の一覧であり、文字列の各要素は、入力した一覧($parameters.nums)の対応する要素にstr関数を適用して処理されています。

  • 置換関数を使用したmap

    • Substitutions:

      add-10(port): $port + 10

    • 式:

      map($substitutions.add-10,

      $parameters.nums) returns a list of numbers: [ 91, 92, 93 ]

このmap関数の結果は数字の一覧であり、各要素は、入力した一覧($parameters.nums)の対応する要素に、置換関数$substitutions.add-10を適用して処理されています。

quotewrap()

quotewrap関数は、引数として文字列を受け取り、入力値の前後に二重引用符を追加してから文字列を返します。

:

quotewrap(“mas”) returns ““mas””

replace()

replace関数は、次の3つの引数を受け取ります。

引数1:文字列

引数2:文字列

引数3:文字列(オプション)

この関数は、引数1の中にある引数2のすべてのアイテムを引数3で置き換えます。

引数3が指定されない場合、引数2のすべてのアイテムが引数1から削除されます(つまり、空の文字列で置き換えられます)。

文字列の一部を、別の文字列の一部で置き換えます。

  • replace(‘abcdef’, ‘def’, ‘xyz’) returns “abcxyz”.
    • 「def」のすべての出現は「xyz」に置き換えられます。
  • replace(‘abcdefabc’, ‘def’) returns “abcabc”.
    • 3つ目の引数がないため、”def”は結果の文字列から削除されています。

trim()

trim関数は、先頭と末尾の空白が入力文字列から取り除かれた文字列を返します。

:

trim(‘ abc ‘) returns “abc”

truncate()

truncate関数は、次の2つの引数を受け取ります。

引数1:文字列

引数2:数字

この関数は、引数1の入力文字列を、引数2で指定された長さに切り捨てた文字列を返します。

:

truncate(‘netscaler mas’, 9) returns “netscaler”

url.encode

url.encode関数は、RFC 3986に基づき、ASCII文字セットを使用して文字が変換された文字列を返します。

:

url.encode(“a/b/c”) returns “a%2Fb%2Fc”

url.decode

url.decode関数は、 RFC 3986に基づき、URLエンコードされた引数を通常の文字列にデコードした文字列を返します。

:

url.decode(“a%2Fb%2Fc”) returns “a/b/c”

is_ipv4()

is_ipv4 () 関数は IP アドレスを引数として取り、IP アドレスが IPv4 形式の場合は「true」を返します。

is_ipv4(10.10.10.10) returns “True”

is_ipv6()

is_ipv6 () 関数は IP アドレスを引数として取り、IP アドレスが IPv6 形式の場合は「true」を返します。

is_ipv6(2001:DB8::) returns “True”