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à.
Metodi generali di supporto
Questa pagina fornisce metodi di supporto aggiuntivi all'interno CloudFront di Functions. Per utilizzare questi metodi, create una CloudFront funzione utilizzando JavaScript runtime 2.0.
import cf from 'cloudfront';
Per ulteriori informazioni, consulta JavaScript funzionalità di runtime 2.0 per CloudFront Functions.
Metadati EdgeLocation
Questo metodo richiede l'utilizzo del modulo. cloudfront
Nota
È possibile utilizzare questo metodo solo per le funzioni di richiesta del visualizzatore. Per le funzioni di risposta del visualizzatore, questo metodo è vuoto.
Utilizzate questo JavaScript oggetto per ottenere il codice dell'aeroporto della edge location, la regione Regional Edge Cache prevista o l'indirizzo IP del CloudFront server utilizzato per gestire la richiesta. Questi metadati sono disponibili solo nel trigger dell'evento di richiesta del visualizzatore.
cf.edgeLocation = { name: SEA serverIp: 1.2.3.4 region: us-west-2 }
L'cf.edgeLocationoggetto può contenere quanto segue:
- nome
-
Il codice IATA
a tre lettere dell'edge location che ha gestito la richiesta. - IP del server
-
L'indirizzo IPv4 o IPv6 del server che ha gestito la richiesta.
- region
-
La CloudFront Regional Edge Cache (REC) che la richiesta dovrebbe utilizzare in caso di perdita della cache. Questo valore non viene aggiornato nel caso in cui il REC previsto non sia disponibile e per la richiesta venga utilizzato un REC di backup. Questo non include la posizione Origin Shield utilizzata, tranne nei casi in cui il REC principale e l'Origin Shield si trovino nella stessa posizione.
Nota
CloudFront Functions non viene richiamato una seconda volta quando CloudFront è configurato per utilizzare il failover di origine. Per ulteriori informazioni, consulta Ottimizza l'alta disponibilità con il failover di CloudFront origine.
metodo raw QueryString ()
Questo metodo non richiede il cloudFront modulo.
Utilizzate il rawQueryString() metodo per recuperare la stringa di query non analizzata e inalterata come stringa.
Richiesta
function handler(event) { var request = event.request; const qs = request.rawQueryString(); }
Risposta
Restituisce la stringa di query completa della richiesta in entrata come valore di stringa senza l'iniziale. ?
-
Se non è presente una stringa di query, ma
?è presente, le funzioni restituiscono una stringa vuota. -
Se non è presente una stringa di query e
?non è presente, la funzione restituisceundefined.
- Caso 1: restituita la stringa di query completa (senza interlinea
?) -
URL della richiesta in entrata:
https://example.com/page?name=John&age=25&city=BostonrawQueryString()restituisce:"name=John&age=25&city=Boston" - Caso 2: restituita una stringa vuota (quando
?è presente ma senza parametri) -
URL della richiesta in entrata:
https://example.com/page?rawQueryString()restituisce:"" - Caso 3:
undefinedrestituito (nessuna stringa di query e no?) -
URL della richiesta in entrata:
https://example.com/pagerawQueryString()restituisce:undefined
metodo log CustomData ()
Per utilizzare questo metodo, importate il cloudfront modulo.
Usa il logCustomData() metodo per inviare dati personalizzati dalla tua CloudFront funzione Amazon CloudFront ai log di accesso. I dati vengono scritti nel campo viewer-request-log-data o viewer-response-log-data log, a seconda che la funzione sia associata a una richiesta del visualizzatore o a un evento di risposta del visualizzatore.
Il metodo accetta un singolo argomento di stringa. Per registrare un oggetto, usa prima JSON.stringify() di tutto convertirlo in una stringa. Ad esempio:
const resp_obj = JSON.stringify(some_obj); cf.logCustomData(resp_obj);
Ogni campo supporta fino a 800 byte di dati. CloudFront automaticamente URL-encodes i dati prima di scriverli nel campo di registro. CloudFront tronca successivamente tutti i dati superiori a 800 byte. URL-encoding Se la funzione chiama logCustomData() più volte all'interno di una singola esecuzione, CloudFront utilizza solo l'ultimo valore.
Aggiungi campi alla configurazione del registro
Per ricevere questi dati nei registri di CloudFront accesso, è necessario aggiungere i viewer-response-log-data campi viewer-request-log-data o alla configurazione dei log in tempo reale o alla configurazione di registrazione standard (v2). CloudFront Functions non supporta la registrazione personalizzata dei dati per i punti di presenza (POP) incorporati.
Differenza da console.log ()
Il logCustomData() metodo non sostituisce console.log() CloudFront Functions. Utilizzalo console.log() per inviare righe di registro ad Amazon CloudWatch Logs. Utilizzalo cf.logCustomData() per scrivere dati personalizzati per CloudFront accedere ai log (log in tempo reale e registrazione standard (v2)). È possibile utilizzare entrambi i metodi nella stessa funzione. Per ulteriori informazioni, vedere Registri CloudFront delle funzioni.
Il metodo utilizza la seguente sintassi:
cf.logCustomData(String);
Esempio Registra un'intestazione in una funzione di richiesta del visualizzatore
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Check if the debug header exists, if so log it if (request.headers['x-debug-header']) { // Log the debug header value cf.logCustomData("debug header found: " + request.headers['x-debug-header'].value); } return request; }