

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Méthodes d’aide pour les magasins de clés-valeurs
<a name="functions-custom-methods"></a>

**Note**  
Les appels à la méthode d'assistance au stockage des valeurs clés depuis CloudFront Functions ne déclenchent aucun événement de AWS CloudTrail données. Ces événements ne sont pas enregistrés dans l'historique des CloudTrail événements. Pour de plus amples informations, veuillez consulter [Journalisation des appels CloudFront d'API Amazon à l'aide AWS CloudTrail](logging_using_cloudtrail.md).

Cette section s'applique si vous utilisez le [CloudFront Key Value Store](kvs-with-functions.md) pour inclure des valeurs clés dans la fonction que vous créez. CloudFront Functions possède un module qui fournit trois méthodes d'assistance pour lire les valeurs du magasin de valeurs clés.

Pour utiliser ce module dans le code de fonction, assurez-vous d’avoir [associé un magasin de clés-valeurs](kvs-with-functions-associate.md) à la fonction. 

Ajoutez ensuite les instructions suivantes dans les premières lignes du code de fonction :

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



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

Utilisez cette méthode pour renvoyer la valeur associée au nom de clé que vous spécifiez. 

**Demande**

```
get("key", options);
```
+ `key` : nom de la clé dont la valeur doit être extraite
+ `options` : vous disposez d’une option, `format`. Elle garantit que la fonction analyse correctement les données. Valeurs possibles :
  + `string`: UTF8 encodé (par défaut)
  + `json` 
  + `bytes` : tampon de données binaires brutes

**Exemple de demande**

```
const value = await kvsHandle.get("myFunctionKey", { format: "string"});
```

**Réponse**

La réponse est une `promise` qui aboutit à une valeur au format demandé en grâce aux `options`. Par défaut, la valeur est renvoyée sous forme de chaîne.

### Gestion des erreurs
<a name="error-handling-exists-method"></a>

La méthode `get()` renvoie une erreur lorsque la clé que vous avez demandée n’existe pas dans le magasin de clés-valeurs associé. Pour gérer ce cas d’utilisation, vous pouvez ajouter un bloc `try` et `catch` à votre code.

**Avertissement**  
L’utilisation de combinateurs de promesses (par exemple : `Promise.all`, `Promise.any`) ainsi que de méthodes de chaînage de promesses (par exemple : `then` et `catch`) peut entraîner une utilisation élevée de la mémoire de la fonction. Si votre fonction dépasse le quota de [mémoire de fonction maximale](cloudfront-limits.md#limits-functions), elle ne pourra pas s’exécuter. Pour éviter cette erreur, nous vous recommandons d’utiliser la syntaxe `await` de manière séquentielle ou en boucle pour demander plusieurs valeurs.  
**Exemple**  

```
var value1 = await kvs.get('key1');
var value2 = await kvs.get('key2');
```
Actuellement, l’utilisation de combinateurs de promesses pour obtenir plusieurs valeurs n’améliore pas les performances, comme dans l’exemple suivant.  

```
var values = await Promise.all([kvs.get('key1'), kvs.get('key2'),]);
```

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

Utilisez cette méthode pour déterminer si la clé existe ou non dans le magasin de clés-valeurs.

**Demande**

```
exists("key");
```

**Exemple de demande**

```
const exist = await kvsHandle.exists("myFunctionkey");
```

**Réponse**

La réponse est une `promise` qui renvoie une valeur booléenne (`true` ou `false`). Cette valeur indique si la clé existe ou non dans le magasin de clés-valeurs.

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

Utilisez cette méthode pour renvoyer les métadonnées concernant le magasin de clés-valeurs.

**Demande**

```
meta();
```

**Exemple de demande**

```
const meta = await kvsHandle.meta();
```

**Réponse**

La réponse est un élément `promise` qui se résout à un objet doté des propriétés suivantes :
+ `creationDateTime` : date et heure de création du magasin de clés-valeurs, au format ISO 8601.
+ `lastUpdatedDateTime` : date et heure de la dernière synchronisation du magasin de clés-valeurs depuis la source, au format ISO 8601. La valeur n’inclut pas la durée de propagation jusqu’à la périphérie.
+ `keyCount` : nombre total de clés dans le magasin de clés-valeurs après la dernière synchronisation depuis la source.

**Exemple de réponse**

```
{keyCount:3,creationDateTime:2023-11-30T23:07:55.765Z,lastUpdatedDateTime:2023-12-15T03:57:52.411Z}
```