Product Documentation

기본 제공 함수

Feb 10, 2017

StyleBooks의 식은 기본 제공 함수를 사용할 수 있습니다.

예를 들어 기본 제공 함수 str()을 사용하여 숫자를 문자열로 변환할 수 있습니다.

str($parameters.order)

또는 기본 제공 함수 int()를 사용하여 문자열을 정수로 변환할 수 있습니다.

int($parameters.priority)

다음 목록에는 StyleBook 식에서 지원되는 기본 제공 함수와 사용 방법의 예가 나와 있습니다.

 

함수 설명 StyleBook 식의 함수 예

str()

str 함수는 입력 인수를 문자열 값으로 변환합니다.

사용 가능한 인수 유형:

  • 문자열
  • 숫자
  • TCP 포트
  • 부울
  •  IP 주소

예를 들어 다음과 같습니다.

  • "set-" + str(10)은 "set-10"을 반환합니다.
  • str(10)은 "10"을 반환합니다.
  • str(1.1.1.1)은 "1.1.1.1"을 반환합니다.
  • str(True)는 "True"를 반환합니다.
  • str(mas)는 "mas"를 반환합니다.

int()

int 함수는 문자열, 숫자 또는 TCP 포트를 인수로 사용하여 정수를 반환합니다.

예를 들어 다음과 같습니다.

  • int("10")은 10을 반환합니다.
  • int(10)은 10을 반환합니다.

bool()

bool 함수는 모든 유형을 인수로 사용합니다. 인수 값이 false이거나 비어 있거나 존재하지 않으면 이 함수는 false를 반환하고, 그렇지 않으면 true를 반환합니다.

예를 들어 다음과 같습니다.

  • bool(true)는 "true"를 반환합니다.
  • bool(false)는 "false"를 반환합니다.
  • $parameters.a가 false이거나 비어 있거나 존재하지 않으면 bool($parameters.a)는 false를 반환하고, 그렇지 않으면 true를 반환합니다.

len()

len 함수는 문자열 또는 목록을 인수로 사용하여 문자 수(문자열) 또는 항목 수(목록)를 반환합니다.

예제 1:

다음과 같은 대체를 정의하는 경우:

items: ["123", "abc", "xyz"]

len($substitutions.items)는 3을 반환합니다.

예제 2:

len("netscaler mas")는 13을 반환합니다.

예제 3:

$parameters.vip에 ['1.1.1.1', '1.1.1.2', '1.1.1.3'] 값이 할당된 경우 len($parameters.vips)는 3을 반환합니다.

min()

min 함수는 목록 또는 일련의 숫자 또는 TCP 포트를 인수로 사용하여 최소 항목을 반환합니다.

일련의 숫자/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 포트 목록이고 [80, 81, 8080] 값을 갖는 경우

           min($parameters.ports)는 80을 반환합니다.

max()

max 함수는 목록 또는 일련의 숫자 또는 TCP 포트를 인수로 사용하여 최대 항목을 반환합니다.

일련의 숫자/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 포트 목록이고 [80, 81, 8080] 값을 갖는 경우

           max($parameters.ports)는 8080을 반환합니다.

bin()

bin 함수는 숫자를 인수로 사용하여 해당 숫자를 2진수 형식으로 나타내는 문자열을 반환합니다.

식의 예:

  • bin(100)은 "0b1100100"을 반환합니다.

 

oct()

oct 함수는 숫자를 인수로 사용하여 해당 숫자를 8진수 형식으로 나타내는 문자열을 반환합니다.

식의 예:

  • oct(100)은 "0144"를 반환합니다.

hex()

hex 함수는 숫자를 인수로 사용하여 해당 숫자를 16진수 형식으로 나타내는 소문자 문자열을 반환합니다.

식의 예:

  • hex(100)은 "0x64"를 반환합니다.

lower()

lower 함수는 문자열을 인수로 사용하여 동일한 문자열을 소문자로 반환합니다.

예제:

  • lower("MAS")는 "mas"를 반환합니다.

upper()

upper 함수는 문자열을 인수로 사용하여 동일한 문자열을 대문자로 반환합니다.

예제:

  • upper("netscaler_mas")는 "NETSCALER_MAS"를 반환합니다.

sum()

sum 함수는 숫자 또는 TCP 포트의 목록을 인수로 사용하여 목록에 있는 모든 숫자의 합계를 반환합니다.

예제 1:

다음과 같은 대체를 정의하는 경우:

substitutions:

  list-of-numbers:

     - 11

     - 22

     - 55

sum($substitutions.list-of-numbers)는 88을 반환합니다. 

예제 2:

$parameters.ports가 [80, 81, 82]인 경우

sum($parameters.ports)는 243을 반환합니다.

pow()

"power" 함수는 두 개의 숫자를 인수로 사용하여 첫 번째 인수를 두 번째 인수만큼 거듭제곱한 값을 나타내는 숫자를 반환합니다.

예제:

  • pow(3,2)는 9를 반환합니다.

ip()

ip 함수는 문자열 또는 IP 주소를 인수로 사용하여 입력 값을 기반으로 IP 주소를 반환합니다.

예를 들어 다음과 같습니다.

  • ip("2.1.1.1")은 "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는 선택적 매개 변수입니다. configpack을 만들 때 이 매개 변수에 값을 지정하면 exists($parameters.monitor)가 True를 반환하고, 그렇지 않으면 False를 반환합니다.

filter

filter 함수는 두 가지 인수를 사용합니다.

  • 인수 1: 하나의 인수를 사용하여 부울 값을 반환하는 대체 함수
  • 인수 2: 목록

이 함수는 원래 목록의 하위 집합을 반환하여 각 요소가 첫 번째 인수에서 대체 함수로 전달되면 "True"로 평가됩니다.

예제:

다음과 같이 대체 함수를 정의한 경우

substitutions:

  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:

$parameters.servicetype의 값이 "HTTP"이면 if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport)는 "$parameters.hport"의 값을 반환하고, 그렇지 않으면 "$parameters.sport" 값을 반환합니다.

예제 3:

$parameters.servicetype의 값이 "HTTP"이면 if-then-else($parameters.servicetype == HTTP, 80)은 "80"을 반환하고, 그렇지 않으면 아무 값도 반환하지 않습니다.

join

join 함수는 두 가지 인수를 사용합니다.

  • 인수 1: 숫자, TCP 포트, 문자열 또는 IP 주소 목록
  • 인수 2: 구분자 문자열(선택 사항)

이 함수는 인수 1로 제공된 목록의 요소를 문자열로 연결하며, 각 요소는 인수 2로 제공된 구분자 문자열로 구분됩니다. 인수 2가 제공되지 않을 경우 목록에 있는 요소가 한 문자열로 함께 연결됩니다.

예제:

$parameters.ports는 [81, 82, 83]입니다.

  •  구분자 인수를 지정하는 경우: join($parameters.ports, '-')는 "81-82-83"을 반환합니다.
  • 구분자 인수를 지정하지 않는 경우: join($parameters.ports)는 "818283"을 반환합니다.

map

map 함수는 두 가지 인수를 사용합니다.

  • 인수 1: 모든 함수
  • 인수 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
  • 하나 이상의 인수를 사용하는 대체 함수

 

예제:

$parameters.nums가 [81, 82, 83]인 경우

  • 기본 제공 함수 str을 사용하는 map

map(str, $parameters.nums)는 ["81", "82", "83"]을 반환합니다.

map 함수의 결과는 각 요소가 입력 목록($parameters.nums)의 해당 요소에 str 함수를 적용하여 계산된 문자열인 문자열 목록입니다.

  • 대체 함수를 사용하는 map

substitutions:

  add-10(port): $port + 10

식:

 map($substitutions.add-10, $parameters.nums)는 숫자 목록 [ 91, 92, 93 ]을 반환합니다.

이 map 함수의 결과는 각 요소가 입력 목록($parameters.nums)의 해당 요소에 대체 함수 $substitutions.add-10을 적용하여 계산된 숫자 목록입니다.

 

quotewrap

quotewrap 함수는 문자열을 인수로 사용하여 입력 값 앞뒤에 큰따옴표 문자를 추가한 문자열을 반환합니다.

예제:

  • quotewrap("mas")는 "\"mas\""를 반환합니다.

replace

replace 함수는 3가지 인수를 사용합니다.

  • 인수 1: 문자열
  • 인수 2: 문자열
  • 인수 3: 문자열(선택 사항)

이 함수는 인수 1에 있는 모든 인수 2를 인수 3으로 바꿉니다.

인수 3이 제공되지 않은 경우 인수 1에서 인수 2가 모두 제거됩니다. 즉, 빈 문자열로 대체됩니다.

 

 

하위 문자열을 다른 하위 문자열로 대체:

 

  • replace('abcdef', 'def', 'xyz')는 "abcxyz"를 반환합니다. 모든 "def"가 "xyz"로 대체됩니다.
  • replace('abcdefabc', 'def')는 "abcabc"를 반환합니다. 세 번째 인수가 없기 때문에 결과 문자열에서 "def"가 제거됩니다.

 

 

trim

trim 함수는 입력 문자열에서 선행 및 후행 공백이 제거된 문자열을 반환합니다.

예제:

  • trim('abc')는 "abc"를 반환합니다.   

truncate

truncate 함수는 두 가지 인수를 사용합니다.

  • 인수 1: 문자열
  • 인수 2: 숫자

이 함수는 인수 1의 입력 문자열이 인수 2에 지정된 길이로 잘린 문자열을 반환합니다.

예제:

  • truncate('netscaler mas', 9)는 "netscaler"를 반환합니다.

url.encode

url.encode 함수는 문자가 RFC 3986에 따른 ASCII 문자 집합을 사용하여 변환된 문자열을 반환합니다.

예제:

  • url.encode("a/b/c")는 "a%2Fb%2Fc"를 반환합니다.

url.decode

url.decode 함수는 URL 인코딩된 인수가 RFC 3986에 따른 정규식으로 디코딩된 문자열을 반환합니다.

예제:

  • url.decode("a%2Fb%2Fc")는 "a/b/c"를 반환합니다.