Application Delivery Management

組み込み関数

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

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

str($parameters.order)

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

int($parameters.priority)

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

str()

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

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

  • string
  • 番号
  • TCP-port
  • ブーリアン型
  • IPアドレス

:

  • “set-“ + str(10) returns “set-10”
  • str(10) returns “10”
  • str(1.1.1.1)は”1.1.1.1”を返します
  • str (T true) は「T true」を返します。
  • str(mas)は”mas”を返します

int()

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

:

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

bool()

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

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

:

  • bool(true) returns “true”
  • bool(false)は”false”を返します
  • bool ($parameters.a) は、次の場合に false を返します。
  • $parameters.a が偽であるか、空であるか、または存在しません。

len()

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

例 1

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

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

len($substitutions.items)は3を返します

例 2

len(“netscaler mas”) returns 13

サンプル 3

len ($parameters.vips) は、$parameters.vip に 値 [‘1.1.1.1’、’1.1.1.2’、’1.1.1.3’]が割り当てられている場合は 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) は 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-portの一覧で、[80, 81, 8080]の値があるとします。

    max ($parameters.ports) は 8080 を返します。

bin()

bin () 関数は引数として数値を取り、その数値を 2 進形式で表す文字列を返します。

式の例:

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」) は「ネットスケーラー_MAS」を返します

sum()

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

例 1

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

  • 番号リスト:

    • 11
    • 22
    • 55

    sum ($置換.数値リスト) は 88 を返します

例 2

$parameters.ports が [80, 81, 82] の場合、sum ($parameters.ports) は 243 を返します

pow()

pow () 関数は 2 つの数値を引数に取り、1 番目の引数を 2番目の引数で 累乗した数値を返します。

pow(3,2) returns 9

ip()

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

:

  • ip(“2.1.1.1”) returns “2.1.1.1”
  • ip(3.1.1.1)は”3.1.1.1”を返します

base64.encode()

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

base64.encode(“abcd”)は”YWJjZA==”を返します

base64.decode()

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

base64.decode(“YWJjZA==”)は”abcd”を返します

exists()

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

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

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

filter()

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

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

引数2:一覧です。

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

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

置換:

x(a): $a != 81

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

仮に、

$parameters.ports は [81、80、81、89]

filter($substitutions.x, $parameters.ports)は、一覧から81のアイテムをすべて削除して、[80, 89]を返します。

if-then-else()

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

引数1:ブール式

引数2:任意の式

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

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

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

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

例 1

$parameters.servicetypeに値”HTTP”がある場合、if-then-else($parameters.servicetype == HTTP, 80, 443)は”80”を返します。それ以外の場合、この関数は「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

$parameters.servicetypeに値”HTTP”がある場合、if-then-else($parameters.servicetype == HTTP, 80)は”80”を返します。

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

join()

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

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

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

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

  • $parameters.portsは[81, 82, 83]です。

    • デリミタ引数付き:

      join ($parameters.ports, ‘-‘) は「81-82-83” を返します

    • デリミタ引数なし:

      join ($parameters.ports) は「818283」を返します

map()

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

引数1:任意の関数

引数2:要素の一覧

この関数は、リスト内の各要素が引数 2 の対応する要素にマップ関数 (引数 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

    map(str, $parameters.nums)は[“81”, “82”, “83”]を返します

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

  • 置換関数を使用したmap

    • Substitutions:

      10 (ポート) の追加:$ポート + 10

    • 表現:

      マップ ($substitutions.add-10,

      $parameters.nums) は数値のリストを返します: [91, 92, 93]

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

quotewrap()

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

クォートラップ (「mas」) は「” 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関数は、入力文字列から前後のスペースを削除した文字列を返します。

トリム (‘abc’) は「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) は「True」を返します

is-ipv6 ()

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

is-ipv6 (2001: DB8::) は「True」を返します

組み込み関数