B-C-ME2SR3

Variable Support / 빌트인 변수를 통해 사용자 Request 정보 살펴보기

Blog Post created by B-C-ME2SR3 Employee on Oct 28, 2016

Luna Control Center 는 한달에 한번씩 업데이트를 하면서 많은 기능들이 업데이트 되고 있습니다.

업데이트된 내용은 Luna 접속시 볼 수 있는 공지사항에 보통 게시되고 있습니다만

꼼꼼히 살펴보지 않으면 잘 보이지 않는 부분들도 있습니다.

 

변수 지원(Variable Support) 역시 그런 기능들 중 하나입니다.

변수 지원은 크게 1) 사용자 정의 변수와 2) 아카마이 빌트인 변수(Built-in) 로 나뉘어 집니다.

사용자 정의 변수는 Property Manager 를 이용하여 엣지 서버의 동작을 정의할 때

플래그(Flag)라던가 원본으로 전달하고 싶은 값을 핸들링 할 때 무척 유용하게 쓸 수 있습니다.

 

이번 포스팅에서는 아카마이 빌트인 변수로 제공되는 것들이 무엇이 있는지 살펴보고

사용자 정의 변수와 함께 Property Manager 를 통한 로직 구성시

어떻게 활용할 수 있는지 다음 포스팅에서 이어 살펴보도록 하겠습니다.

 

 

Property Manager 에서 사용할 수 있는 여러가지 Behavior 들 중에

변수 지원 업데이트 이후에 "Variable Support" 라고 표기된 Input Box 를 보신적이 있을 겁니다.

보통은 정해진 문자열을 넣는 칸이었는데 변수도 넣을 수 있다는 뜻입니다.

 

변수를 입력하기 위해서는 특별한 키워드를 활용해야 합니다.

키워드는 브레이스를 두개 연속으로 사용하는 것이구요, 

키워드가 입력되면 사용할 수 있는 변수들의 목록이 자동완성 리스트로 출력됩니다. 

 

 

사용자 변수가 지정되어 있는 경우에는 사용자 지정 변수가 먼저 뜹니다만

지정된 변수가 없기 때문에 빌트인 변수들의 목록만 자동완성 리스트에 보이고 있습니다.

빌트인 변수는 오늘 기준으로 23개의 값이 제공되고 있고, 그 내용은 아래와 같습니다.

 

Built In 변수명

내용 

AKA_PM_CACHEABLE_OBJECT

캐시할 수 있는 객체인가? (true/false)

AK_BASE_URL

파일명과 확장자를 제외한 URL

AK_CLIENT_IP

실제 사용자 IP (XFF 고려한 값)

AK_CLIENT_REAL_IP

실제 사용자 IP (XFF 헤더를 무시한 값)

AK_CONNECTED_CLIENT_IP

TCP 소켓에서 사용된 사용자 IP

AK_DOMAIN

Top Level 도메인 (예: akamai.com)

AK_EXTENSION

파일 확장자

AK_FILENAME

파일명 (확장자 제외)

AK_HOST

도메인 (예: www.akamai.com)

AK_HOST_CNAME_CHAIN

Host 헤더의 DNS 질의 CNAME 결과

AK_METHOD

요청 HTTP 메소드

AK_ORIGINAL_URL

최초 요청된 URL (Trailing Slash 등을 모두 포함)

AK_PATH

요청 Path

AK_PROTOCOL_NEGOTIATION

NPN / ALPN 이 동작한 경우 프로토콜 (예: h2, h2-14)

AK_QUERY

URL 의 쿼리문자열

AK_SCHEME

프로토콜 (예: http, https)

AK_SLOT

SSL 인증서 Slot 번호

AK_TLS_CIPHER_NAME

HTTPS 인 경우 사용된 Cipher Suite 명

AK_TLS_ENCRYPTION_BITS

HTTPS 인 경우 사용된 암호화 비트수

AK_TLS_PREFERRED_CIPHERS

HTTPS 인경우 Preferred Cipher Suite 목록 (예: AES256-SHA)

AK_TLS_SNI_NAME

HTTPS - SNI 요청인 경우 SNI 플래그의 값 (호스트명)

AK_TLS_VERSION

HTTPS 인 경우 사용된 TLS 버전

AK_URL

쿼리 스트링을 포함한 전체 URL

 

예를 들어 URL 에 포함된 쿼리 문자열은 {{builtin.AK_QUERY}} 로 표기하면 되겠습니다.

변수들의 내용을 하나씩 보고 있으면, 뭔가 엣지의 동작에 활용하고픈 생각이 많이 드실 것 같습니다. 

다음 글에서는 이 값들을 어떻게 활용할 수 있는지 예제를 통해 살펴보도록 하겠습니다.

Outcomes