Determina lo scopo della funzione - 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à.

Determina lo scopo della funzione

Prima di scrivere il codice funzione, è necessario determinare lo scopo della funzione. La maggior parte CloudFront delle funzioni di Functions ha uno dei seguenti scopi.

Indipendentemente dallo scopo della funzione, handler è il punto di ingresso per qualsiasi funzione. Richiede un solo argomento chiamatoevent, che viene passato alla funzione da CloudFront. eventÈ un JSON oggetto che contiene una rappresentazione della HTTP richiesta (e della risposta, se la funzione modifica la HTTP risposta).

Modifica la HTTP richiesta in un tipo di evento di richiesta del visualizzatore

La tua funzione può modificare la HTTP richiesta CloudFront ricevuta dal visualizzatore (client) e restituire la richiesta modificata a CloudFront per continuare l'elaborazione. Ad esempio, il codice funzione potrebbe normalizzare la chiave cache o modificare le intestazioni delle richieste.

Quando crei una funzione che modifica la HTTP richiesta, assicurati di scegliere il tipo di evento della richiesta del visualizzatore. Ciò significa che la funzione viene eseguita ogni volta che si CloudFront riceve una richiesta da un visualizzatore, prima di verificare se l'oggetto richiesto è nella CloudFront cache.

Esempio

Lo pseudocodice seguente mostra la struttura di una funzione che modifica la richiesta. HTTP

function handler(event) { var request = event.request; // Modify the request object here. return request; }

La funzione restituisce l'oggetto modificato a. request CloudFront CloudFrontcontinua a elaborare la richiesta restituita controllando la CloudFront presenza di un hit nella cache e inviando la richiesta all'origine, se necessario.

Genera una HTTP risposta in un tipo di evento di richiesta del visualizzatore

La tua funzione può generare una HTTP risposta all'edge e restituirla direttamente al visualizzatore (client) senza verificare la presenza di una risposta memorizzata nella cache o ulteriori elaborazioni da parte CloudFront di. Ad esempio, il codice della funzione potrebbe reindirizzare la richiesta a una nuova URL richiesta o verificare l'autorizzazione e restituire una 401 403 risposta a richieste non autorizzate.

Quando crei una funzione che genera una HTTP risposta, assicurati di scegliere il tipo di evento della richiesta del visualizzatore. Ciò significa che la funzione viene eseguita ogni volta che CloudFront riceve una richiesta da un visualizzatore, prima CloudFront di eseguire qualsiasi ulteriore elaborazione della richiesta.

Esempio

Lo pseudocodice seguente mostra la struttura di una funzione che genera una risposta. HTTP

function handler(event) { var request = event.request; var response = ...; // Create the response object here, // using the request properties if needed. return response; }

La funzione restituisce un response oggetto a CloudFront, che ritorna CloudFront immediatamente al visualizzatore senza controllare la CloudFront cache o inviare una richiesta all'origine.

Modifica la HTTP risposta in un tipo di evento di risposta del visualizzatore

La funzione può modificare la HTTP risposta prima di CloudFront inviarla al visualizzatore (client), indipendentemente dal fatto che la risposta provenga dalla CloudFront cache o dall'origine. Ad esempio, il codice funzione potrebbe aggiungere o modificare le intestazioni, i codici di stato e i contenuti del corpo della risposta.

Quando crei una funzione che modifica la HTTP risposta, assicurati di scegliere il tipo di evento di risposta del visualizzatore. Ciò significa che la funzione viene eseguita prima di CloudFront restituire una risposta al visualizzatore, indipendentemente dal fatto che la risposta provenga dalla CloudFront cache o dall'origine.

Esempio

Lo pseudocodice seguente mostra la struttura di una funzione che modifica la risposta. HTTP

function handler(event) { var request = event.request; var response = event.response; // Modify the response object here, // using the request properties if needed. return response; }

La funzione restituisce l'responseoggetto modificato a CloudFront, che ritorna CloudFront immediatamente al visualizzatore.

Per ulteriori informazioni sull'utilizzo CloudFront delle funzioni, consultate i seguenti argomenti: