

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.

# Vider un cluster de bases de données Amazon Neptune à l'aide de l'API de réinitialisation rapide
<a name="manage-console-fast-reset"></a>

L'API REST de réinitialisation rapide Neptune vous permet de réinitialiser un graphe Neptune rapidement et facilement en supprimant toutes ses données.

Pour ce faire, utilisez la magie linéaire [%db\$1reset](#manage-console-fast-reset-db-reset-magic) dans un bloc-notes Neptune.
+ Dans la plupart des cas, une opération de réinitialisation rapide se termine en quelques minutes. La durée peut varier légèrement en fonction de la charge exécutée sur le cluster au lancement de l'opération.
+ Une opération de réinitialisation rapide n'entraîne pas d'E/S supplémentaires.
+ La taille du volume de stockage ne diminue pas après une réinitialisation rapide. Au lieu de cela, le stockage est réutilisé à mesure que de nouvelles données sont insérées. Par conséquent, les tailles de volume des instantanés créés avant et après une opération de réinitialisation rapide sont les mêmes. Les tailles de volume des clusters restaurés à l'aide des instantanés créés avant et après une opération de réinitialisation rapide sont également les mêmes
+ Dans le cadre de l'opération de réinitialisation, toutes les instances du cluster de bases de donnes sont redémarrées.
**Note**  
Dans de rares cas, ces redémarrages de serveur peuvent également entraîner un basculement du cluster.

**Important**  
L'utilisation de la réinitialisation rapide peut interrompre l'intégration de votre cluster de bases de données Neptune avec d'autres services. Par exemple :  
La réinitialisation rapide supprime toutes les données de flux de votre base de données et réinitialise complètement les flux. En d'autres termes, les consommateurs de flux risquent de ne plus fonctionner sans une nouvelle configuration. 
La réinitialisation rapide supprime toutes les métadonnées relatives aux ressources d' SageMaker IA utilisées par Neptune ML, y compris les tâches et les points de terminaison. Ils existent toujours dans l' SageMaker IA, et vous pouvez continuer à utiliser les points de terminaison SageMaker IA existants pour les requêtes d'inférence Neptune ML, mais la APIs gestion de Neptune ML ne fonctionne plus avec eux.
Les intégrations telles que l' full-text-searchintégration avec ElasticSearch sont également annulées par une réinitialisation rapide et doivent être rétablies manuellement avant de pouvoir être réutilisées.

**Pour supprimer toutes les données d'un cluster de bases de données Neptune à l'aide de l'API**

1. Tout d'abord, générez un jeton que vous pourrez ensuite utiliser pour réinitialiser la base de données. Cette étape vise à empêcher quiconque de réinitialiser accidentellement une base de données.

   Pour ce faire, envoyez une demande `HTTP POST` au point de terminaison `/system` de l'instance d'enregistreur du cluster de bases de données afin de spécifier l'action `initiateDatabaseReset`.

   Voici la commande `curl` qui utilise le type de contenu JSON :

   ```
   curl -X POST \
     -H 'Content-Type: application/json' \
         https://your_writer_instance_endpoint:8182/system \
     -d '{ "action" : "initiateDatabaseReset" }'
   ```

   Ou celle qui utilise le type de contenu `x-www-form-urlencoded` :

   ```
   curl -X POST \
     -H 'Content-Type: application/x-www-form-urlencoded' \
         https://your_writer_instance_endpoint:8182/system \
     -d 'action=initiateDatabaseReset '
   ```

   La demande `initiateDatabaseReset` renvoie le jeton de réinitialisation dans sa réponse JSON, comme suit :

   ```
   {
     "status" : "200 OK",
     "payload" : {
       "token" : "new_token_guid"
     }
   }
   ```

   Le jeton reste valide pendant une heure (60 minutes) après son émission.

   Si vous envoyez la demande à une instance de lecteur ou au point de terminaison de statut, Neptune génère une exception `ReadOnlyViolationException`.

   Si vous envoyez plusieurs demandes `initiateDatabaseReset`, seul le dernier jeton généré est valide pour la deuxième étape, étape au cours de laquelle vous effectuez réellement la réinitialisation.

   Si le serveur redémarre juste après la demande `initiateDatabaseReset`, le jeton généré n'est plus valide, et vous devez envoyer une nouvelle demande pour obtenir un nouveau jeton.

1. Ensuite, envoyez une demande `performDatabaseReset` avec le jeton que vous avez obtenu via `initiateDatabaseReset` au point de terminaison `/system` de l'instance d'enregistreur du cluster de bases de données. Cette action supprime toutes les données du cluster de bases de données.

   Voici la commande `curl` qui utilise le type de contenu JSON :

   ```
   curl -X POST \
     -H 'Content-Type: application/json' \
         https://your_writer_instance_endpoint:8182/system \
     -d '{
           "action" : "performDatabaseReset",
           "token" : "token_guid"
         }'
   ```

   Ou celle qui utilise le type de contenu `x-www-form-urlencoded` :

   ```
   curl -X POST \
     -H 'Content-Type: application/x-www-form-urlencoded' \
         https://your_writer_instance_endpoint:8182/system \
     -d 'action=performDatabaseReset&token=token_guid'
   ```

   La demande renvoie une réponse JSON. Si la demande est acceptée, la réponse est la suivante :

   ```
   {
     "status" : "200 OK"
   }
   ```

   Si le jeton que vous avez envoyé ne correspond pas à celui qui a été émis, la réponse est la suivante :

   ```
   {
     "code" : "InvalidParameterException",
     "requestId":"token_guid",
     "detailedMessage" : "System command parameter 'token' : 'token_guid' does not match database reset token"
   }
   ```

   Si la demande est acceptée et que la réinitialisation commence, le serveur redémarre et supprime les données. Vous ne pouvez pas envoyer d'autres demandes au cluster de bases de données pendant sa réinitialisation.

## Utilisation de l'API de réinitialisation rapide avec l'authentification IAM
<a name="manage-console-fast-reset-iam-auth"></a>

Si l'authentification IAM est activée sur le cluster de bases de données, vous pouvez utiliser [awscurl](https://github.com/okigan/awscurl) pour envoyer des commandes de réinitialisation rapide authentifiées à l'aide de ce mode d'authentification :

**Utilisation d'awscurl pour envoyer des demandes de réinitialisation rapide avec l'authentification IAM**

1. Définissez correctement les variables d'environnement `AWS_ACCESS_KEY_ID` et `AWS_SECRET_ACCESS_KEY` (ainsi qu'`AWS_SECURITY_TOKEN` si vous utilisez des informations d'identification temporaires).

1. Une demande `initiateDatabaseReset` se présente comme suit :

   ```
   awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \
     -H 'Content-Type: application/json' --region us-west-2 \
     -d '{ "action" : "initiateDatabaseReset" }'
   ```

1. Une demande `performDatabaseReset` se présente comme suit :

   ```
   awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \
     -H 'Content-Type: application/json' --region us-west-2 \
     -d '{ "action" : "performDatabaseReset" }'
   ```

## Utilisation de la magie linéaire `%db_reset` du workbench Neptune pour réinitialiser un cluster de bases de données
<a name="manage-console-fast-reset-db-reset-magic"></a>

Le workbench Neptune intègre une magie linéaire `%db_reset` qui vous permet de réinitialiser rapidement la base de données dans un bloc-notes Neptune.

Si vous invoquez la magie sans aucun paramètre, un écran vous demande si vous souhaitez supprimer toutes les données du cluster. Vous devez également cocher une case afin de confirmer que vous comprenez que les données du cluster ne seront plus disponibles une fois que vous les aurez supprimées. À ce stade, vous pouvez choisir de continuer et de supprimer les données, ou d'annuler l'opération.

Une option plus risquée consiste à invoquer `%db_reset` avec l'option `--yes` ou `-y`, ce qui entraîne la suppression sans invite supplémentaire.

Vous pouvez également effectuer la réinitialisation en deux étapes, tout comme avec l'API REST :

```
%db_reset --generate-token
```

La réponse est :

```
{
  "status" : "200 OK",
  "payload" : {
    "token" : "new_token_guid"
  }
}
```

Continuez avec :

```
%db_reset --token new_token_guid
```

La réponse est :

```
{
  "status" : "200 OK"
}
```

## Codes d'erreur courants pour les opérations de réinitialisation rapide
<a name="manage-console-fast-reset-common-error-codes"></a>


| Code d'erreur Neptune | Statut HTTP | Message | Exemple | 
| --- | --- | --- | --- | 
| `InvalidParameterException` | 400 | La valeur « » du paramètre de commande système *action* « » n'est pas prise en charge *XXX* | Paramètre non valide | 
| `InvalidParameterException` | 400 | Trop de valeurs ont été fournies pour : *action* | Une demande de réinitialisation rapide avec plusieurs actions envoyée avec l'en-tête « Content-Type:Application/ » x-www-form-urlencoded | 
| `InvalidParameterException` | 400 | Champ 'action' en double | Demande de réinitialisation rapide avec plusieurs actions, envoyée avec l'en-tête 'Content-Type: application/json' | 
| `MethodNotAllowedException` | 400 | Mauvais itinéraire :/*bad\$1endpoint* | Demande envoyée à un point de terminaison incorrect | 
| `MissingParameterException` | 400 | Paramètres obligatoires manquants : [action] | Une demande de réinitialisation rapide ne contient pas le paramètre 'action' obligatoire | 
| `ReadOnlyViolationException` | 400 | Les écritures ne sont pas autorisées sur une instance de réplica en lecture | Une demande de réinitialisation rapide a été envoyée à un point de terminaison de lecteur ou de statut | 
| `AccessDeniedException` | 403 | Jeton d'authentification manquant | Une demande de réinitialisation rapide a été envoyée sans les signatures correctes à un point de terminaison de base de données sur lequel l'authentification IAM est activée | 
| `ServerShutdownException` | 500 | La réinitialisation de la base de données est en cours. Réessayez la requête une fois que le cluster sera disponible. | Lorsque la réinitialisation rapide commence, les requêtes Gremlin/Sparql existantes et entrantes échouent. | 