

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à.

# Svuotamento di un cluster database Amazon Neptune utilizzando l'API di ripristino rapido
<a name="manage-console-fast-reset"></a>

La REST API di ripristino rapido Neptune consente di ripristinare un grafo Neptune in modo veloce e semplice, rimuovendo tutti i relativi dati.

Puoi farlo all'interno di un notebook Neptune usando il comando magic di riga [%db\$1reset](#manage-console-fast-reset-db-reset-magic).
+ Nella maggior parte dei casi, un'operazione di ripristino rapido viene completata entro un paio di minuti. La durata può variare leggermente a seconda del carico sul cluster al momento dell'avvio dell'operazione.
+ Un'operazione di ripristino rapido non comporta operazioni di I/O aggiuntive.
+ Le dimensioni del volume di archiviazione non si riducono dopo un ripristino rapido. Al contrario, l'archiviazione viene riutilizzata quando vengono inseriti nuovi dati. Ciò significa che le dimensioni del volume degli snapshot scattati prima e dopo un'operazione di ripristino rapido saranno le stesse. Anche le dimensioni dei volumi dei cluster ripristinati che utilizzano snapshot creati prima e dopo un'operazione di ripristino rapido saranno le stesse
+ Nell'ambito dell'operazione di ripristino, tutte le istanze nel cluster database vengono riavviate.
**Nota**  
In casi rari, questi riavvii del server potrebbero anche causare il failover del cluster.

**Importante**  
L'utilizzo del ripristino rapido può interrompere l'integrazione del cluster database Neptune con altri servizi. Esempio:  
Il ripristino rapido elimina tutti i dati dei flussi dal database e ripristina completamente i flussi. Ciò significa che i consumatori dei flussi potrebbero non funzionare più senza una nuova configurazione. 
Il ripristino rapido rimuove tutti i metadati relativi alle risorse SageMaker AI utilizzate da Neptune ML, inclusi job ed endpoint. Continuano a esistere nell' SageMaker intelligenza artificiale e puoi continuare a utilizzare gli endpoint SageMaker AI esistenti per le query di inferenza di Neptune ML, ma la gestione di Neptune ML non funziona più con loro. APIs 
Anche le integrazioni come l' full-text-searchintegrazione con ElasticSearch vengono eliminate dal ripristino rapido e devono essere ripristinate manualmente prima di poter essere riutilizzate.

**Per eliminare tutti i dati da un cluster database Neptune utilizzando l'API**

1. Genera anzitutto un token da utilizzare successivamente per eseguire il ripristino del database. Questo passaggio ha lo scopo di impedire che qualcuno ripristini accidentalmente un database.

   A tale scopo, invia una richiesta `HTTP POST` all'endpoint `/system` sull'istanza di scrittura del cluster database per specificare l'azione `initiateDatabaseReset`.

   Il comando `curl` che utilizza il tipo di contenuto JSON sarebbe:

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

   Oppure, utilizzando il tipo di contenuto `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 richiesta `initiateDatabaseReset` restituisce il token di ripristino nella sua risposta JSON, ovvero:

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

   Il token rimane valido per un'ora (60 minuti) dopo l'emissione.

   Se invii la richiesta a un'istanza reader o all'endpoint dello stato, Neptune genererà un'eccezione `ReadOnlyViolationException`.

   Se invii più richieste `initiateDatabaseReset`, solo l'ultimo token generato sarà valido per il secondo passaggio, in cui eseguirai effettivamente il ripristino.

   Se il server si riavvia subito dopo la richiesta `initiateDatabaseReset`, il token generato non è più valido e devi inviare una nuova richiesta per ottenerne uno nuovo.

1. Successivamente, devi inviare una richiesta `performDatabaseReset` con il token ricevuto da `initiateDatabaseReset` all'endpoint `/system` sull'istanza di scrittura del cluster database. In questo modo vengono eliminati tutti i dati dal cluster database.

   Il comando `curl` che utilizza il tipo di contenuto JSON è:

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

   Oppure, utilizzando il tipo di contenuto `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 richiesta restituisce una risposta JSON. Se la richiesta viene accettata, la risposta è:

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

   Se il token che hai inviato non corrisponde a quello emesso, la risposta è simile alla seguente:

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

   Se la richiesta viene accettata e il ripristino ha inizio, il server si riavvia ed elimina i dati. Non è possibile inviare altre richieste al cluster database durante il ripristino.

## Utilizzo dell'API di ripristino rapido con IAM-Auth
<a name="manage-console-fast-reset-iam-auth"></a>

Se hai abilitato IAM-Auth nel cluster database, puoi usare [awscurl](https://github.com/okigan/awscurl) per inviare comandi di ripristino rapido autenticati mediante IAM-Auth:

**Utilizzo di awscurl per inviare richieste di ripristino rapido con IAM-Auth**

1. Imposta correttamente le variabili di ambiente `AWS_ACCESS_KEY_ID` e `AWS_SECRET_ACCESS_KEY` (e anche `AWS_SECURITY_TOKEN` se stai usando credenziali temporanee).

1. Una richiesta `initiateDatabaseReset` è simile a questa:

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

1. Una richiesta `performDatabaseReset` è simile a questa:

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

## Utilizzo del comando magic di riga `%db_reset` del workbench Neptune per ripristinare un cluster database
<a name="manage-console-fast-reset-db-reset-magic"></a>

Il workbench Neptune supporta un comando magic di riga `%db_reset` che consente di eseguire un ripristino rapido del database in un notebook Neptune.

Se si richiama il comando magic senza alcun parametro, viene visualizzata una schermata in cui viene chiesto se si desidera eliminare tutti i dati del cluster. C'è anche una casella di controllo che richiedere di essere a conoscenza del fatto che i dati del cluster non saranno più disponibili dopo l'eliminazione. A quel punto, puoi scegliere di procedere con l'eliminazione dei dati o annullare l'operazione.

Un'opzione più rischiosa è richiamare `%db_reset` con l'opzione `--yes` o `-y`, in modo che l'eliminazione venga eseguita senza ulteriori richieste.

Puoi anche eseguire il ripristino in due passaggi, come con REST API:

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

La risposta è:

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

Poi esegui:

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

La risposta è:

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

## Codici di errore comuni per operazioni di ripristino rapido
<a name="manage-console-fast-reset-common-error-codes"></a>


| Codice di errore Neptune | Stato HTTP | Messaggio | Esempio | 
| --- | --- | --- | --- | 
| `InvalidParameterException` | 400 | Il parametro del comando di sistema '*action*' ha un valore non supportato '' *XXX* | Parametro non valido | 
| `InvalidParameterException` | 400 | Sono stati forniti troppi valori per: *action* | Una richiesta di ripristino rapido con più di un'azione inviata con l'intestazione 'Content-Type:Application/ 'x-www-form-urlencoded | 
| `InvalidParameterException` | 400 | Campo 'action' duplicato | Una richiesta di ripristino rapido con più di un'azione inviata con l'intestazione 'Content-Type: application/json' | 
| `MethodNotAllowedException` | 400 | Percorso errato:/*bad\$1endpoint* | Richiesta inviata a un endpoint errato | 
| `MissingParameterException` | 400 | Parametri obbligatori mancanti: [action] | Una richiesta di ripristino rapido non contiene il parametro 'action' richiesto | 
| `ReadOnlyViolationException` | 400 | Le scritture non sono consentite su un'istanza di replica di lettura | È stata inviata una richiesta di ripristino rapido endpoint di reader o di stato | 
| `AccessDeniedException` | 403 | Token di autenticazione mancante | Una richiesta di ripristino rapido è stata inviata senza firme corrette a un endpoint di database in cui è abilitato IAM-Auth | 
| `ServerShutdownException` | 500 | Il ripristino del database è in corso. Riprova a eseguire la query dopo che il cluster diventa disponibile. | Quando inizia il ripristino rapido, le query Gremlin/Sparql esistenti e in entrata non riescono. | 