본문으로 건너뛰기

Pre-function

개요

Pre-function 정책은 사용자가 요청이 처리되기 전에 사용자 정의 스크립트를 실행할 수 있도록 합니다. 이 정책은 사용자가 요청 매개변수, 헤더 및 본문 내용을 추가, 제거 또는 변환하여 요청을 동적으로 수정할 수 있게 합니다.

Pre-function 정책은 일반적으로 다음과 같은 용도로 사용됩니다:

  • Data Masking: 개인 식별 번호와 같은 민감한 데이터를 백엔드에 도달하기 전에 숨기는 것.
  • Query String Manipulation: 쿼리 매개변수를 동적으로 수정하거나 필터링하는 것.
  • Token Validation: 인증 및 보안 로직을 구현하는 것.
  • Routing Control: 요청 속성에 따라 라우팅 결정을 수정하는 것.

구성 세부정보

Pre-function 정책은 사용자가 스크립트를 작성하는 code editor로 구성됩니다. 인터페이스에는 다음 구성 요소가 포함됩니다:

코드 편집기

editor는 사용자가 API 요청 생애 주기의 다양한 실행 단계에 대한 사용자 정의 Lua 스크립트를 작성하고 수정할 수 있는 주요 영역입니다. 코드 편집기 내에는 네 개의 탭이 있습니다:

  • Access: 여기에서 입력된 코드는 접근 단계에서 실행되어 사용자가 인증, 헤더, 경로 재작성 등과 같은 요청 수준의 로직을 조작할 수 있게 합니다.
  • Header Filter: 클라이언트에 다시 전송되기 전에 응답 헤더를 수정하는 데 사용됩니다.
  • Body Filter: 응답 본문을 조작할 수 있게 하여 응답 내용을 변환하거나 마스킹하는 데 유용합니다.
  • Log: 요청이 처리된 후 요청 또는 응답 데이터를 기반으로 로깅 동작을 구현하는 데 사용됩니다.

각 탭에는 전용 코드 편집기와 개발 속도를 높이는 데 도움이 되는 스니펫 및 예제에 대한 접근이 포함되어 있습니다.

노트

코드는 여러 실행 단계가 활용될 경우 각 탭 내에서 별도로 작성되고 저장되어야 합니다.

Pre-function Code Editor

스니펫 (미리 정의된 코드 블록)

Snippets 섹션은 사용자가 편집기에 삽입할 수 있는 미리 정의된 코드 블록을 제공합니다. 이러한 블록은 사용자가 코드를 처음부터 작성할 필요 없이 일반적으로 사용되는 요청 수정을 신속하게 구현하는 데 도움을 줍니다.

스니펫 목록:

SnippetsDescription
JSON 파서JSON 형식의 요청 본문을 로드하고 처리합니다.
요청 원본 본문 가져오기처리하기 전에 전체 요청 본문을 검색합니다.
서비스 요청 원본 본문 설정요청 본문을 수정하여 백엔드로 전달하기 전에 변경합니다.
요청 메서드 가져오기HTTP 메서드(GET, POST 등)를 검색합니다.
요청 경로 가져오기전체 요청 경로를 얻습니다.
요청 헤더 가져오기특정 요청 헤더에서 값을 추출합니다.
요청 헤더 설정요청 헤더를 동적으로 수정하거나 추가합니다.
응답 종료 설정요청을 종료하고 사용자 정의 응답을 반환합니다.
서비스 호스트 설정대상 서버를 동적으로 변경합니다.
서비스 요청 스킴 설정요청 스킴(http 또는 https)을 수정합니다.
서비스 요청 경로 설정요청을 백엔드로 전송하기 전에 요청 경로를 변경합니다.

Pre-function Snippets

예제 섹션

이 섹션에는 Pre-function 정책의 실제 구현을 보여주는 미리 정의된 예제 스크립트가 포함되어 있습니다. 이러한 예제는 사용자가 일반적인 시나리오를 신속하게 구현할 수 있도록 템플릿 역할을 합니다.

예제 목록:

ExamplesDescription
데이터 마스킹요청 페이로드에서 민감한 정보를 마스킹합니다. 쿼리 문자열에 값으로 나타날 때 한국 주민등록번호를 “SSN-DATA”로 대체하고 라우팅을 계속합니다.
쿼리 문자열 조작"service" 키와 해당 값을 제외한 모든 쿼리 문자열을 제거합니다.
백엔드 라우팅 조건에 따라 매개변수를 필터링합니다:
- 라우팅 대상 백엔드 주소가 A일 때, 모든 쿼리 매개변수가 완전히 제거됩니다.
- 그러나 라우팅 대상 백엔드 주소가 B일 경우, 특정 쿼리 매개변수 집합만 허용되며, 다른 매개변수는 폐기됩니다.
토큰 검증정규 표현식을 사용하여 "Authorization: bearer xxxxxxxx" 토큰에 대한 사용자 정의 검증을 구현합니다. 그리고 특정 메서드 + 경로 조합은 베어러 토큰 검증을 수행하지 않습니다.
라우팅사용자가 코드를 작성하여 상황에 따라 라우팅을 계속하거나 즉시 실패를 처리할 수 있도록 허용합니다.

사전 기능 예시

적용 예시

사용자는 코드 편집기에서 스크립트를 직접 수정하거나 미리 정의된 스니펫을 사용할 수 있습니다. 예시를 클릭하면 팝업 편집기가 열려 추가적인 사용자 지정을 할 수 있습니다.