

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 helper per archivi di valori delle chiavi
<a name="functions-custom-methods"></a>

**Nota**  
Le chiamate al metodo di supporto Key Value Store da CloudFront Functions non attivano un evento di AWS CloudTrail dati. Questi eventi non vengono registrati nella cronologia degli CloudTrail eventi. Per ulteriori informazioni, consulta [Registrazione delle chiamate CloudFront API Amazon tramite AWS CloudTrail](logging_using_cloudtrail.md).

Questa sezione si applica se utilizzi [CloudFront Key Value Store](kvs-with-functions.md) per includere valori chiave nella funzione che crei. CloudFront Functions ha un modulo che fornisce tre metodi di supporto per leggere i valori dall'archivio di valori chiave.

Per utilizzare questo modulo nel codice della funzione, assicurati di aver [associato un archivio di valori delle chiavi](kvs-with-functions-associate.md) alla funzione. 

Quindi, includi le seguenti istruzioni nelle prime righe del codice della funzione:

```
import cf from 'cloudfront';
const kvsHandle = cf.kvs();
```



## Metodo `get()`
<a name="functions-custom-methods-get"></a>

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`: (Predefinito) UTF8 codificato
  + `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
<a name="error-handling-exists-method"></a>

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](cloudfront-limits.md#limits-functions), non verrà eseguita. Per evitare questo errore, ti consigliamo di utilizzare la sintassi `await` in modo sequenziale o in loop per richiedere più valori.  
**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'),]);
```

## Metodo `exists()`
<a name="functions-custom-methods-exists"></a>

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.

## Metodo `meta()`
<a name="functions-custom-methods-meta"></a>

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}
```