4장. APIcast 네이티브 배포와 정책 체인 통합


네이티브 APIcast 배포의 경우 THREESCALE_CONFIG_FILE 환경 변수를 사용하여 구성 파일을 지정하여 사용자 정의 정책 체인 을 통합할 수 있습니다. 다음 예제에서는 config 파일 example.json 을 지정합니다.

THREESCALE_CONFIG_FILE=example.json bin/apicast
Copy to Clipboard

4.1. 정책에서 변수 및 필터 사용

일부 표준 정책은 일반 문자열 값뿐만 아니라 요청 컨텍스트에서 존재하는 변수도 사용할 수 있는 Liquid templatelating을 지원합니다.

컨텍스트 변수를 사용하려면 해당 이름을 {{ 및 }} 로 래핑합니다(예: {{ uri }} ). 변수가 오브젝트인 경우 해당 속성에 액세스할 수도 있습니다(예: {{ some somevar.attr }} ).

다음은 모든 정책에서 사용할 수 있는 표준 변수입니다.

  • URI

    이 경로에서 제외된 쿼리 매개변수가 있는 요청 경로입니다. 포함된 NGINX 변수 $uri 의 값입니다.

  • host

    요청의 호스트입니다. 이 값은 포함된 NGINX 변수 $host 의 값입니다.

  • remote_addr

    포함된 NGINX 변수 $remote_addr 의 값인 클라이언트의 IP 주소입니다.

  • headers

    요청 헤더를 포함하는 오브젝트입니다. {{headers['Some-Header']}} 를 사용하여 특정 헤더 값을 가져옵니다.

  • http_method

    요청 메서드: GET, POST .

이러한 표준 변수는 요청 컨텍스트에서 사용되지만 정책은 컨텍스트에 더 많은 변수를 추가할 수 있습니다. 단계는 APIcast의 모든 실행 단계를 나타냅니다. 다음과 같은 경우 정책 체인의 모든 정책에서 변수를 사용할 수 있습니다.

  • 동일한 단계에서 변수가 정책에 추가된 경우 추가 후 다음 정책에서 사용됩니다.
  • 변수가 단계에 추가되면 이 변수를 다음 단계에서 사용할 수 있습니다.

다음은 표준 3scale APIcast 정책이 컨텍스트에 추가하는 변수의 몇 가지 예입니다.

  • JWT: OpenID Connect 인증에 대한 JWT 토큰의 구문 분석된 JSON 페이로드입니다.
  • credentials: 애플리케이션 자격 증명을 보유한 오브젝트입니다. 예: "app_id": "972f7b4f", "user_key": "13b668c4d1e10eaebaa5144b4749713f".
  • service: 현재 요청을 처리하는 서비스 구성을 보유하는 오브젝트입니다. 예: 서비스 ID는 {{ service.id }}로 사용할 수 있습니다.

컨텍스트에서 사용 가능한 전체 오브젝트 및 값 목록은 Liquid 컨텍스트 디버그 를 참조하십시오.

변수는 Liquid 템플릿의 도움말과 함께 사용됩니다. 예: {{ remote_addr }}, {{ headers['ECDHE-Header'] }}, {{ jwt.aud }}. 값에 대한 변수를 지원하는 정책에는 일반적으로 _type 접미사가 있는 특수 매개변수(예: value_type,name_type. 즉 일반 텍스트에 "plain", "liquid")가 있습니다.

APIcast는 변수 값에 적용할 수 있는 Liquid 필터도 지원합니다. 필터는 Liquid 변수의 값에 NGINX 함수를 적용합니다.

필터는 변수 출력 태그 {{ }}; 변수 이름 또는 파이프 문자 | 및 필터 이름에 따라 리터럴 값에 따라 배치됩니다. 예:

  • {{ 'username:password' | encode_base64 }}, 여기서 username:password 는 변수입니다.
  • {{ URI | escape_uri }}

일부 필터에는 매개변수가 필요하지 않으므로 변수 대신 빈 문자열을 사용할 수 있습니다. 예: {{ '' | utctime }} 는 현재 시간을 UTC 표준 시간대로 반환합니다.

필터는 다음과 같이 연결할 수 있습니다: {{ variable | function1 | function2 }} }} 예: {{ '' | utctime | escape_uri }} }}

다음은 사용 가능한 함수 목록입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat