View a markdown version of this page

HTTP_REQUEST - AWS Elemental MediaTailor

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

HTTP_REQUEST

Quando utilizzare

Da utilizzare HTTP_REQUEST quando la funzione deve chiamare un servizio esterno. I casi d'uso più comuni includono il recupero dei dati di identità da un fornitore di soluzioni, il recupero di segmenti di pubblico da una piattaforma di gestione dei dati e l'invio di informazioni sulla sessione a un endpoint di registrazione.

Campi di configurazione

Una HTTP_REQUEST funzione ha i seguenti campi:

  • Runtime: il linguaggio delle espressioni. Imposta questo valore suJSONATA.

  • MethodType— Il metodo HTTP. I valori supportati sono GET e POST.

  • Url: l'URL a cui inviare la richiesta. Puoi utilizzare un URL statico o un'espressione JSONATA che crea l'URL in modo dinamico.

  • Intestazioni: le intestazioni HTTP da includere nella richiesta, specificate come nome dell'intestazione e coppie di valori. Usa la sintassi delle {%...%} espressioni per i valori di intestazione dinamici. I valori statici possono essere specificati direttamente come stringhe.

  • Body: il corpo della richiesta da inviare. Utilizzato con POST le richieste. È possibile utilizzare un'espressione JSonata per creare il corpo in modo dinamico.

  • RequestTimeoutMilliseconds(obbligatorio): per quanto tempo attendere una risposta.

  • Output: definisce i valori da produrre dopo il completamento della chiamata HTTP. Ogni voce associa una chiave di output (ad esempioplayer_params.envelope_id) a un'espressione che può fare riferimento all'responseoggetto.

Per i limiti e le restrizioni di dimensione che si applicano a questi campi, vedereLimits.

Come viene elaborata la richiesta

MediaTailor elabora una HTTP_REQUEST funzione in due fasi:

  1. Crea la richiesta: MediaTailor valuta le Body espressioni UrlHeaders, e rispetto allo stato della sessione corrente. Questi valori valutati formano la richiesta HTTP in uscita.

  2. Elabora la risposta: al termine della chiamata HTTP, MediaTailor valuta le espressioni nel blocco di output. Queste espressioni possono fare riferimento sia allo stato della sessione originale che all'responseoggetto restituito dalla chiamata.

Campi di risposta

Una volta completata la chiamata HTTP, puoi fare riferimento ai seguenti campi nelle espressioni di output:

Campo Tipo Description
response.body Oggetto o matrice Il corpo della risposta è stato analizzato come JSON. Imposta null se il corpo supera i 20.000 caratteri o non è un codice JSON valido.
response.statusCode Numero intero Il codice di stato HTTP restituito dal servizio esterno. Impostato null su In caso di errore di rete.
response.text Stringa Il corpo della risposta non elaborato sotto forma di stringa, troncato a 20.000 caratteri. Impostato su In caso di errore di "Internal Error" rete.
Importante

Il response.body campo è null quando la risposta supera i 20.000 caratteri, anche se la risposta è JSON valida.

Nota

L'oggetto di risposta è disponibile solo nel blocco Output di una funzione. HTTP_REQUEST Non è possibile fare riferimento ai campi di risposta nei campi Url, Headers o Body. In aSEQUENTIAL_EXECUTOR, ogni HTTP_REQUEST funzione può accedere solo alla propria risposta.

Un valore di null indica che i dati non sono disponibili. Ciò accade quando la chiamata HTTP fallisce (errore di rete o timeout) o quando il corpo della risposta supera i 20.000 caratteri o non è un codice JSON valido.

Comportamento di errore di rete

Se la chiamata HTTP ha esito negativo a causa di un errore di rete o di un timeout e response.text viene impostata su. response.statusCode response.body null "Internal Error" Le espressioni di output continuano a essere eseguite, quindi controlla sempre response.statusCode prima di utilizzare i dati di risposta.

Suggerimento

Usa un'espressione condizionale per gestire gli errori con garbo: {%response.statusCode = 200 ? response.body.value : 'default'%}

Esempio: recupera i dati di identità

La seguente funzione richiama un'API di risoluzione delle identità all'inizio della sessione e memorizza il risultato nei parametri del giocatore. È progettato per il PRE_SESSION_INITIALIZATION ciclo di vita.

{ "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 : ''%}" } } }

Per una panoramica completa di un esempio simile, vedere. Esempi di funzioni