組み込み関数
str() を使用して、数値を文字列に変換できます。
str($parameters.order)
int() を使用して、文字列を整数に変換できます。
int($parameters.priority)
エスティーアール()
str() 関数は、入力引数を文字列値に変換します。
-
string -
number -
tcp-port -
boolean -
ipaddress
-
"set-" + str(10)関数は"set-10"を返します。 -
str(10)関数は10を返します。 -
str(1.1.1.1)関数は1.1.1.1を返します。 -
str(True)関数は"True"を返します。 -
str(NetScaler Console)関数は"NetScaler Console"を返します。
イント()
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を返します。 -
$parameters.aがfalse、空、または存在しない場合、bool($parameters.a)関数はfalseを返します。
len()関数
len()関数は、引数として文字列またはリストを受け取り、文字列内の文字数またはリスト内の項目数を返します。
items: ["123", "abc", "xyz"]
len($substitutions.items)関数は3を返します
len("NetScaler Console")関数は10を返します。
$parameters.vipsに['1.1.1.1', '1.1.1.2', '1.1.1.3']の値がある場合、len($parameters.vips)関数は3を返します。
min()関数
min()関数は、引数としてリストまたは一連の数値またはTCPポートを受け取り、最小の項目を返します。
-
min(80, 100, 1000)関数は80を返します。 -
min(-20, 100, 400)関数は-20を返します。 -
min(-80, -20, -10)関数は-80を返します。 -
min(0, 100, -400)関数は-400を返します。
-
サポート
$parameters.portsはTCPポートのリストであり、値は[80, 81, 8080]です。min($parameters.ports)関数は80を返します。
最大値()
max()関数は、引数としてリストまたは一連の数値またはTCPポートを受け取り、最大の項目を返します。
-
max(80, 100, 1000)関数は1000を返します。 -
max(-20, 100, 400)関数は400を返します。 -
max(-80, -20, -10)関数は-10を返します。 -
The
max(0, 100, -400)関数は100を返します。
-
サポート
$parameters.portsはTCPポートのリストであり、値は[80, 81, 8080]です。Themax($parameters.ports)関数は8080を返します。
ビン()
bin() 関数は数値を引数として受け取り、その数値をバイナリ形式で表す文字列を返します。
bin(100) 関数は 0b1100100 を返します。
オクト()
oct() 関数は数値を引数として受け取り、その数値を8進数形式で表す文字列を返します。
oct(100) 関数は 0144 を返します。
ヘックス()
hex() 関数は数値を引数として受け取り、その数値を16進数形式で表す小文字の文字列を返します。
hex(100)」関数は「0x64」を返します。
小文字()
lower()」関数は文字列を引数として受け取り、その文字列を小文字で返します。
lower("NetScaler Console")」関数は「NetScaler Console」を返します。
大文字()
upper()」関数は文字列を引数として受け取り、その文字列を大文字で返します。
upper("NetScaler Console")」関数は「NetScaler Console」を返します。
合計()
sum()」関数は数値のリストまたはtcpportsを引数として受け取り、リスト内の数値の合計を返します。
list-of-numbers = [11, 22, 55]
sum($substitutions.list-of-numbers)」関数は「88」を返します。
$parameters.portsが[80, 81, 82]の場合、sum($parameters.ports)関数は243を返します。
pow() 関数
pow()関数は2つの数値を引数として受け取り、最初の引数を2番目の引数で累乗した結果を表す数値を返します。
pow(3,2)関数は9を返します。
ip()
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を返します。
-
ip_network()
ip_network関数は、IPアドレスとネットマスク長を引数として受け取り、IPネットワーク表記を返します。
ip_network(1.1.1.1, 28)関数は1.1.1.1/28を返します。
$parameters.ipaddrに1.1.1.1という値を指定します。ip_network($parameters.ipaddr, 30)関数は1.1.1.1/30を返します。
$parameters.netmask-lenに24という値を指定します。ip_network(23.1.12.76, $parameters.netmask-len)関数は23.1.12.76/24を返します。
network_ip()
network_ip() 関数は、指定されたIPネットワークの最初のIPアドレスを返します。
network_ip(1.1.1.1/28) 関数は 1.1.1.0 を返します。この例では、指定されたネットワークの最初のIPアドレスは 1.1.1.0 です。
subnets() 関数
subnets() 関数は、指定されたIPネットワークとネットマスク長からサブネットのリストを返します。
subnets(1.1.1.1/28, 30) 関数は、指定されたIPネットワークとネットマスク長からサブネットのリストを返します。出力は次のようになります。
[1.1.1.0/30', '1.1.1.4/30', '1.1.1.8/30', '1.1.1.12/30']
netmask_ip()
netmask_ip() 関数は、指定されたIPネットワークのネットマスクIPアドレスを返します。
netmask_ip(1.1.1.1/28) 関数は 255.255.255.240 を返します。指定されたIPネットワークの場合、255.255.255.240 がネットマスクIPアドレスです。
is_netmask_ip()
is_netmask_ip() 関数は入力として ipaddress を受け入れます。そして、指定された値が有効なネットマスクIPアドレスである場合、True を返します。
is_netmask_ip(255.255.255.240) 関数は、指定された値が有効なネットマスクIPアドレスであるため、True を返します。
is_netmask_ip(255.255.255.232) 関数は、指定された値が有効なネットマスクIPアドレスではないため、False を返します。
broadcast_ip()
broadcast_ip() 関数は、指定されたIPネットワークのブロードキャストIPアドレスを返します。
broadcast_ip(1.1.1.1/28) 関数は1.1.1.15を返します。指定されたIPネットワークの場合、1.1.1.15がブロードキャストIPアドレスです。
cidr() 関数
cidr() 関数は、指定されたIPネットワークのCIDR表記を返します。
cidr(1.1.1.1/28) 関数は1.1.1.0/28を返します。指定されたIPネットワークの場合、1.1.1.0/28がCIDR表記です。
is_cidr()
is_cidr() 関数は入力としてipnetworkを受け入れます。そして、指定された値がIPネットワークのCIDR表記と一致する場合、Trueを返します。
is_cidr(1.1.1.0/24) 関数は、指定された値が指定されたネットワークのCIDR表記であるため、True を返します。
is_cidr(1.1.1.1/28)関数は、指定されたネットワークのCIDR表記が指定された値と異なるため、Falseを返します。
is_in_network()
is_in_network()関数はipnetworkとipaddressの値を受け入れます。そして、指定されたIPアドレスが指定されたIPネットワーク内に存在する場合、Trueを返します。
is_in_network(1.1.1.1/24, 1.1.1.121)関数は、1.1.1.121アドレスが1.1.1.1/24ネットワークの一部であるため、Trueを返します。
is_in_network(1.1.1.1/28, 2.1.1.1)関数は、2.1.1.1アドレスが1.1.1.1/28ネットワークの一部ではないため、Fasleを返します。
base64.encode()
base64.encode()関数は文字列引数を受け取り、base64エンコードされた文字列を返します。
base64.encode("abcd")関数はYWJjZA==を返します。
base64.decode()
base64.decode関数はbase64エンコードされた文字列を引数として受け取り、デコードされた文字列を返します。
base64.decode("YWJjZA==") 関数は abcd を返します。
エグジスツ()
exists() 関数は任意の型の引数を受け取り、ブール値を返します。入力に何らかの値がある場合、戻り値は True です。入力引数に値がない場合(つまり、値がない場合)、戻り値は False です。
$parameters.monitor はオプションのパラメータであるとします。設定パックを作成する際にこのパラメータに値を指定すると、($parameters.monitor) 関数は True を返します。
False を返します。
フィルター()
filter() 関数は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()は3つの引数を取ります。
Trueと評価される場合、関数は引数2として提供された式の値を返します。
noを返します。
if-then-else($parameters.servicetype == HTTP, 80, 443)関数は、$parameters.servicetypeがHTTPの値を持つ場合、80を返します。それ以外の場合、関数は443を返します。
if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport)関数は、$parameters.servicetypeがHTTPの値を持つ場合、$parameters.hportの値を返します。
$parameters.sportの値を返します。
$parameters.servicetype が HTTP の値を持つ場合、if-then-else($parameters.servicetype == HTTP, 80) は 80 を返します。
join() 関数
join() 関数は2つの引数を取ります。
number、tcp-port、string、ipaddress のリスト
-
$parameters.portsは[81, 82, 83]です。-
区切り文字引数を使用した場合:
join($parameters.ports, '-')関数は81-82-83を返します。 -
区切り文字引数を使用しない場合:
join($parameters.ports)関数は818283を返します。
-
split() 関数
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つの引数を取ります。
map() 関数 (引数 1) を引数 2 の対応する要素に適用した結果であるリストを返します。
-
1つの引数を取る組み込み関数:
base64.encode, base64.decode, bin, bool, exists, hex, int, ip, len, lower, upper, oct, quotewrap, str, trim, upper, url.encode, url.decode -
少なくとも1つの引数を取る置換関数。
[81, 82, 83] であると仮定します。
-
組み込み関数 str を使用したマップ
map(str, $parameters.nums)関数は["81", "82", "83"]を返します。マップ関数の結果は、入力リスト ($parameters.nums) の対応する要素に str 関数を適用して各要素の文字列が計算される文字列のリストです。 -
置換関数を使用したマップ
-
置換:
add-10(port): $port + 10 -
式:
map($substitutions.add-10, $parameters.nums)関数は数値のリスト[ 91, 92, 93 ]を返します。
-
($parameters.nums) の対応する要素に置換関数 $substitutions.add-10 を適用して計算されます。
quotewrap() 関数
quotewrap() 関数は文字列を引数として受け取り、入力値の前後に二重引用符文字を追加した文字列を返します。
quotewrap("NetScaler Console")」関数は「"NetScaler Console"」を返します。
置換()
replace()」関数は3つの引数を取ります。
string またはリスト:
-
string -
number -
ipaddress -
tcp-port -
boolean
replace()」関数は、引数1内の引数2のすべての出現箇所を引数3に置き換えます。
-
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がないため、10.10.10.2と10.10.10.4は結果のIPアドレスリストから削除されます。 -
replace([8080, 8081, 8082, 8083, 8084], 8083, 80)関数は[8080, 8081, 8082, 80, 8084]を返します。8083のすべての出現箇所は80に置き換えられます。
trim() 関数
trim() 関数は、入力文字列から先頭と末尾の空白が削除された文字列を返します。
trim(' abc ') 関数は abc を返します。
truncate() 関数
truncate() 関数は2つの引数を取ります。
truncate('Stylebooks', 6) は Styleb を返します。
ディスティンクト()
distinct() 関数は、リスト入力から一意の項目を抽出します。
$parameters.input_list が ['ADC', 'VPX', 'ADC', 'CPX'] の場合、distinct($parameters.input_list) 関数は ['ADC', 'VPX', 'CPX'] を返します。
url.encode()
url.encode() 関数は、RFC 3986 に従って ASCII 文字セットを使用して文字が変換された文字列を返します。
url.encode("a/b/c") 関数は a%2Fb%2Fc を返します。
url.decode()
url.decode() 関数は、RFC 3986 に従って URL エンコードされた引数が通常の文字列にデコードされた文字列を返します。
url.decode("a%2Fb%2Fc")関数は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を返します
startswith() 関数
startswith()関数は、文字列が指定されたプレフィックスで始まるかどうかを判断します。この関数には、2つの必須文字列引数が必要です。
startswith(str, sub_str)
str) が部分文字列 (sub_str) で始まる場合にTrueを返します。
-
startswith('Citrix', 'Ci')関数はTrueを返します。 -
startswith('Citrix', 'iC')関数はFalseを返します -
startswith('Citrix', 'Ab')関数はFalseを返します
endswith() 関数
endswith() 関数は、文字列が指定されたサフィックスで終わるかどうかを判断します。この関数には、2つの必須文字列引数が必要です。
endswith(str, sub_str)
str) が部分文字列 (sub_str) で終わる場合、この関数は True を返します。
-
endswith('Citrix', 'ix')関数はTrueを返します。 -
endswith('Citrix', 'Ix')関数はFalseを返します。 -
endswith('Citrix', 'ab')関数はFalseを返します。
contains() 関数
contains() 関数は、文字列が指定された部分文字列を含むかどうかを判断します。この関数には、2つの必須文字列引数が必要です。
-
string -
number -
tcp-port -
boolean -
ipaddress
contains(str, sub_str)
str) 内にサブストリング (sub_str) が含まれている場合に True を返します。
-
contains('Citrix', 'tri')関数はTrueを返します。 -
contains('Citrix', 'Ci')関数はTrueを返します。 -
contains('Citrix', 'ti')関数はFalseを返します。
list_of_strings = [“Citrix”, “Core”, ”Values”, ”Integrity”]
contains($parameters.list_of_strings, “Values”)
Values 項目が含まれているため、contains() 関数は True を返します。
部分文字列()
substring() 関数を使用します。
substring(str, start_index, end_index)
-
str(必須) -
start_index(必須) -
end_index(任意)
str) からサブストリングを返します。終了インデックス位置を指定しない場合、関数は開始インデックスから文字列の末尾までサブストリングを抽出します。
end_index を指定すると、サブストリングは end_index の位置にある文字を除外します。
-
substring('Citrix', 2)関数はtrixを返します -
substring('Citrix', 10)関数は (") を返しますこの例では、無効なstart_index位置があるため、関数は空の文字列を返します。 -
substring('Citrix', 2, 4)関数はtrを返しますこの例では、関数はインデックス位置 2 と 4 の間の文字を抽出します。 -
substring('Citrix', -3)関数はrixを返します文字列の末尾にある文字を抽出したい場合は、start_index引数に負の値を指定します。この例では、関数は文字列の最後の3文字を含むサブストリングを抽出します。
マッチ()
match() 関数は、入力文字列が定義された正規表現パターンと一致するかどうかを確認します。この関数は、正規表現パターンと検索文字列を引数として受け入れます。オプションで、大文字と小文字を区別するパターンを無視するためにブール型を指定することもできます。
-
match(“\^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “A2_B2”)はTrueを返します。 -
match(“\^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_b2”)はFalseを返します。 -
match(“\^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_B2”, $parameters.ignore_case)はTrueを返します。
sha256()
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: sha256(lbserver-name)
servicetype: SSL
ipv46: 10.10.10.10
lbserver-name は NetScaler オブジェクト上にハッシュ文字列として表示されます。
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: sha256($parameters.lb-appname)
servicetype: SSL
ipv46: 10.10.10.10
関連付け()
relate() 関数は、リストのセットから辞書オブジェクトのリストを形成します。
name: test_relate_3
description: "Hello World StyleBook."
namespace: com.citrix.adc.stylebooks
schema-version: "1.0"
version: "1.1"
import-stylebooks:
-
namespace: netscaler.nitro.config
prefix: ns
version: "10.5"
-
namespace: com.citrix.adc.stylebooks
prefix: stlb
version: "1.0"
parameters:
-
name: namesofservers
description: "Provide the names of LB VServers"
type: string[]
-
name: listofips
description: "Provide the list of IP Addresses"
type: string[]
-
name: list_of_keys
type: string[]
default:
- "name"
- "ip"
substitutions:
list_of_values: [$parameters.namesofservers,$parameters.listofips]
components:
-
name: svc-comp
type: object
properties:
svcdetails: relate($parameters.list_of_keys,$substitutions.list_of_values)
-
name: lb-comp
type: ns::lbvserver
repeat: $components.svc-comp.properties.svcdetails
repeat-item: svcd
properties:
name: $svcd['name']
servicetype: HTTP
ipv46: $svcd['ip']
port: 80
-
parametersセクションには、nameとipを持つlist_of_keysというリストがあります。 -
substitutionsセクションには、以下の2つのリストを持つlist_of_valuesというリストがあります。-
仮想サーバー名のリスト (
string) -
IPアドレスのリスト (
string)。
-
relate()組み込み関数は、list_of_keysとlist_of_valuesを引数として受け入れます。この関数は、各オブジェクトが最初のリストからの名前と2番目のリストからのIPアドレスを持つ辞書オブジェクトのリストを作成します。
["lb1","lb2"]
["1.1.1.1","2.2.3.3"]
relate()関数は以下のリストを返します:
[\{"name": "lb1", "ip": "1.1.1.1"},\{"name": "lb2", "ip": "2.2.3.3"}]
componentsセクションで、この辞書オブジェクトのリストを反復処理して、対応する仮想サーバーを作成します。
複数()
multiple()関数は2つの引数を取ります:
number、string、boolean、ipaddress、tcp-port、またはpassword
number
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]を返します。