Metodi helper per archivi di valori delle chiavi - Amazon CloudFront

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}