View a markdown version of this page

HTTP_REQUEST - AWS Elemental MediaTailor

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

HTTP_REQUEST

사용해야 하는 경우

함수가 외부 서비스를 호출해야 할 HTTP_REQUEST 때 사용합니다. 일반적인 사용 사례에는 해결 공급자로부터 자격 증명 데이터 가져오기, 데이터 관리 플랫폼에서 대상 세그먼트 검색, 로깅 엔드포인트로 세션 정보 전송이 포함됩니다.

구성 필드

HTTP_REQUEST 함수에는 다음 필드가 있습니다.

  • 런타임 - 표현식 언어입니다. 이를 로 설정합니다JSONATA.

  • MethodType - HTTP 메서드입니다. 지원되는 값은 GETPOST입니다.

  • URL - 요청을 보낼 URL입니다. 정적 URL 또는 URL을 동적으로 빌드하는 JSONata 표현식을 사용할 수 있습니다.

  • 헤더 - 요청에 포함할 HTTP 헤더로, 헤더 이름 및 값 페어로 지정됩니다. 동적 헤더 값에 {%...%} 표현식 구문을 사용합니다. 정적 값은 문자열로 직접 지정할 수 있습니다.

  • 본문 - 전송할 요청 본문입니다. POST 요청에 사용됩니다. JSONata 표현식을 사용하여 동적으로 본문을 빌드할 수 있습니다.

  • RequestTimeoutMilliseconds(필수) - 응답을 기다리는 시간입니다.

  • 출력 - HTTP 호출이 완료된 후 생성할 값을 정의합니다. 각 항목은 response 객체를 참조할 수 있는 표현식에 출력 키(예: player_params.envelope_id)를 매핑합니다.

이러한 필드에 적용되는 크기 제한 및 제한은 섹션을 참조하세요한도.

요청 처리 방법

MediaTailor는 다음 두 단계로 HTTP_REQUEST 함수를 처리합니다.

  1. 요청 빌드 - MediaTailor는 현재 세션 상태를 기준으로 UrlHeaders, 및 Body 표현식을 평가합니다. 이러한 평가된 값은 아웃바운드 HTTP 요청을 형성합니다.

  2. 응답 처리 - 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_EXECUTORHTTP_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 : ''%}" } } }

유사한 예제에 대한 전체 연습은 단원을 참조하십시오함수 예제.