View a markdown version of this page

Metodi generali di supporto - Amazon CloudFront

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, crea 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 dello spettatore. Per le funzioni viewer-response, questo metodo è vuoto.

Utilizzate questo JavaScript oggetto per ottenere il codice dell'aeroporto di 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 di tre lettere della 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 mancata 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 coincidono.

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.

Usa 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 arrivo come valore di stringa senza l'iniziale. ?

  • Se non è presente una stringa di interrogazione, ma ? è presente, le funzioni restituiscono una stringa vuota.

  • Se non è presente una stringa di interrogazione e ? non è presente, la funzione viene restituitaundefined.

Caso 1: viene restituita la stringa di interrogazione completa (senza iniziali?)

URL della richiesta in arrivo: https://example.com/page?name=John&age=25&city=Boston

rawQueryString()restituisce: "name=John&age=25&city=Boston"

Caso 2: viene restituita una stringa vuota (quando ? è presente ma senza parametri)

URL della richiesta in arrivo: https://example.com/page?

rawQueryString()restituisce: ""

Caso 3: undefined restituito (nessuna stringa di interrogazione e no?)

URL della richiesta in arrivo: https://example.com/page

rawQueryString()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 nei log di CloudFront 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 o a un evento di risposta dello spettatore.

Il metodo accetta un singolo argomento di stringa. Per registrare un oggetto, usa prima JSON.stringify() di 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 in una singola esecuzione, CloudFront utilizza solo l'ultimo valore.

Aggiungi campi alla configurazione del registro

Per ricevere questi dati nei log di CloudFront accesso, è necessario aggiungere viewer-response-log-data i campi viewer-request-log-data o alla configurazione del registro in tempo reale o alla configurazione della registrazione standard (v2).

Differenza da console.log ()

Il logCustomData() metodo non sostituisce console.log() CloudFront Functions. Utilizzato console.log() per inviare righe di log ad Amazon CloudWatch Logs. cf.logCustomData()Utilizzato 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; }