Metodi helper per archivi di valori delle chiavi
Nota
Le chiamate all’assistente di gestione dell’archivio di valori delle chiavi da Funzioni CloudFront non attivano un evento di dati AWS CloudTrail. Questi eventi non vengono registrati nella cronologia eventi di CloudTrail. Per ulteriori informazioni, consulta Registrazione di log delle chiamate API Amazon CloudFront utilizzando AWS CloudTrail.
Questa sezione è di applicazione se utilizzi CloudFront Key Value Store per includere valori delle chiavi nella funzione che crei. Funzioni CloudFront dispone di un modulo che fornisce tre metodi helper per leggere i valori dall'archivio di valori delle chiavi.
Per utilizzare questo modulo nel codice della funzione, assicurati di aver associato un archivio di valori delle chiavi alla funzione.
Quindi, includi le seguenti istruzioni nelle prime righe del codice della funzione:
import cf from 'cloudfront'; const kvsHandle = cf.kvs();
get()Metodo
Utilizza questo metodo per restituire il valore della chiave per il nome chiave specificato.
Richiesta
get("key",options);
-
key: il nome della chiave di cui è necessario recuperare il valore -
options: è presente un’opzione,format. Assicura che la funzione analizzi correttamente i dati. Valori possibili:-
string: con codifica UTF8 (impostazione predefinita) -
json -
bytes: buffer di dati binari non elaborati
-
Esempio di richiesta
const value = await kvsHandle.get("myFunctionKey", { format: "string"});
Risposta
La risposta è una promise che si risolve in un valore nel formato richiesto utilizzando options. Per impostazione predefinita, il valore viene restituito come stringa.
Gestione degli errori
Il metodo get() restituirà un errore quando la chiave richiesta non esiste nell’archivio di valori delle chiavi associato. Per gestire questo caso d’uso, puoi aggiungere un blocco catch e try al codice.
avvertimento
L’uso dei combinatori di promesse (ad esempio, Promise.all, Promise.any) e dei metodi di catena di promesse (ad esempio, then e catch) può richiedere un elevato utilizzo della memoria delle funzioni. Se la funzione supera la quota massima di memoria delle funzioni, non verrà eseguita. Per evitare questo errore, ti consigliamo di utilizzare la sintassi await in modo sequenziale o in loop per richiedere più valori.
Ad esempio
var value1 = await kvs.get('key1'); var value2 = await kvs.get('key2');
Attualmente, l’uso dei combinatori di promesse per ottenere più valori non migliora le prestazioni, come nell’esempio seguente.
var values = await Promise.all([kvs.get('key1'), kvs.get('key2'),]);
exists()Metodo
Utilizza questo metodo per verificare se la chiave è presente o meno nell’archivio di valori delle chiavi.
Richiesta
exists("key");
Esempio di richiesta
const exist = await kvsHandle.exists("myFunctionkey");
Risposta
La risposta è un promise che restituisce un valore booleano (true o false). Questo valore specifica se la chiave esiste o meno nell’archivio di valori delle chiavi.
meta()Metodo
Utilizza questo metodo per restituire i metadati relativi all’archivio di valori delle chiavi.
Richiesta
meta();
Esempio di richiesta
const meta = await kvsHandle.meta();
Risposta
La risposta è un valore promise che si risolve in un oggetto con le seguenti proprietà:
-
creationDateTime: la data e l'ora di creazione dell'archivio di valori delle chiavi, nel formato ISO 8601. -
lastUpdatedDateTime: la data e l'ora dell'ultima sincronizzazione dell'archivio di valori delle chiavi, nel formato ISO 8601. Il valore non include il tempo di propagazione verso l'edge. -
keyCount: il numero totale di chiavi in KVS dopo l'ultima sincronizzazione dalla sorgente.
Esempio di risposta
{keyCount:3,creationDateTime:2023-11-30T23:07:55.765Z,lastUpdatedDateTime:2023-12-15T03:57:52.411Z}