기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
HTTP_REQUEST
사용해야 하는 경우
함수가 외부 서비스를 호출해야 할 HTTP_REQUEST 때 사용합니다. 일반적인 사용 사례에는 해결 공급자로부터 자격 증명 데이터 가져오기, 데이터 관리 플랫폼에서 대상 세그먼트 검색, 로깅 엔드포인트로 세션 정보 전송이 포함됩니다.
구성 필드
HTTP_REQUEST 함수에는 다음 필드가 있습니다.
-
런타임 - 표현식 언어입니다. 이를 로 설정합니다
JSONATA. -
MethodType - HTTP 메서드입니다. 지원되는 값은
GET및POST입니다. -
URL - 요청을 보낼 URL입니다. 정적 URL 또는 URL을 동적으로 빌드하는 JSONata 표현식을 사용할 수 있습니다.
-
헤더 - 요청에 포함할 HTTP 헤더로, 헤더 이름 및 값 페어로 지정됩니다. 동적 헤더 값에
{%...%}표현식 구문을 사용합니다. 정적 값은 문자열로 직접 지정할 수 있습니다. -
본문 - 전송할 요청 본문입니다.
POST요청에 사용됩니다. JSONata 표현식을 사용하여 동적으로 본문을 빌드할 수 있습니다. -
RequestTimeoutMilliseconds(필수) - 응답을 기다리는 시간입니다.
-
출력 - HTTP 호출이 완료된 후 생성할 값을 정의합니다. 각 항목은
response객체를 참조할 수 있는 표현식에 출력 키(예:player_params.envelope_id)를 매핑합니다.
이러한 필드에 적용되는 크기 제한 및 제한은 섹션을 참조하세요한도.
요청 처리 방법
MediaTailor는 다음 두 단계로 HTTP_REQUEST 함수를 처리합니다.
-
요청 빌드 - MediaTailor는 현재 세션 상태를 기준으로
UrlHeaders, 및Body표현식을 평가합니다. 이러한 평가된 값은 아웃바운드 HTTP 요청을 형성합니다. -
응답 처리 - HTTP 호출이 완료되면 MediaTailor는 출력 블록의 표현식을 평가합니다. 이러한 표현식은 원래 세션 상태와 호출에서 반환된
response객체를 모두 참조할 수 있습니다.
응답 필드
HTTP 호출이 완료되면 출력 표현식에서 다음 필드를 참조할 수 있습니다.
| Field | 유형 | 설명 |
|---|---|---|
response.body |
객체 또는 배열 | JSON으로 구문 분석된 응답 본문입니다. 본문이 20,000자를 초과하거나 유효한 JSON이 아닌 null 경우 로 설정합니다. |
response.statusCode |
Integer | 외부 서비스에서 반환한 HTTP 상태 코드입니다. 네트워크 장애 null 시를 로 설정합니다. |
response.text |
문자열 | 원시 응답 본문은 문자열로, 20,000자로 잘립니다. 네트워크 장애 "Internal Error" 시를 로 설정합니다. |
중요
response.body 필드는 응답이 유효한 JSON인 경우에도 응답이 20,000자를 초과하는 null 경우 입니다.
참고
응답 객체는 HTTP_REQUEST 함수의 출력 블록에서만 사용할 수 있습니다. URL, 헤더 또는 본문 필드의 응답 필드는 참조할 수 없습니다. 에서 SEQUENTIAL_EXECUTOR각 HTTP_REQUEST 함수는 자체 응답에만 액세스할 수 있습니다.
값이 이면 데이터를 사용할 수 없음을 null 의미합니다. 이는 HTTP 호출이 실패하거나(네트워크 오류 또는 제한 시간) 응답 본문이 20,000자를 초과하거나 유효한 JSON이 아닐 때 발생합니다.
네트워크 장애 동작
네트워크 오류 또는 제한 시간으로 인해 HTTP 호출이 실패response.statusCode하고 response.body가 로 설정null되고 response.text가 로 설정된 경우"Internal Error". 출력 표현식은 여전히 실행되므로 응답 데이터를 사용하기 response.statusCode 전에 항상 확인하세요.
작은 정보
조건식을 사용하여 실패를 정상적으로 처리합니다. {%response.statusCode = 200 ? response.body.value : 'default'%}
예: 자격 증명 데이터 가져오기
다음 함수는 세션 시작 시 자격 증명 확인 API를 호출하고 결과를 플레이어 파라미터에 저장합니다. 수명 PRE_SESSION_INITIALIZATION 주기 후크용으로 설계되었습니다.
{ "FunctionId": "fetchIdentityEnvelope", "FunctionType": "HTTP_REQUEST", "HttpRequestConfiguration": { "Runtime": "JSONATA", "MethodType": "GET", "Url": "{%'https://identity.example.com/v1/resolve?ip=' & $encodeUrlComponent(session.client_ip)%}", "Headers": { "Authorization": "{%'Bearer my_api_token'%}", "Accept": "application/json" }, "RequestTimeoutMilliseconds": 2000, "Output": { "player_params.identity_envelope": "{%response.statusCode = 200 ? response.body.envelope : ''%}" } } }
유사한 예제에 대한 전체 연습은 단원을 참조하십시오함수 예제.