Export DynamoDB: point-in-time recovery assente
In breve — L'export su Amazon S3 (ExportTableToPointInTime) richiede il Point-in-Time Recovery (PITR) sulla tabella di origine. Se il PITR è disattivato ottieni PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table '<name>'. Abilita il PITR, conferma che riporti ENABLED, poi richiedi l'export.
Cosa significa
An error occurred (PointInTimeRecoveryUnavailableException) when calling the
ExportTableToPointInTime operation: Point in time recovery is not enabled for
table 'my-dynamodb-table'La funzionalità di export su S3 completo e incrementale di DynamoDB legge dai backup continui PITR della tabella, non dalla capacità della tabella live. Ecco perché non consuma mai RCU e può esportare lo stato di una tabella in qualsiasi punto della finestra di recovery — ma funziona solo quando il PITR è abilitato. Niente PITR, niente export.
Perché succede
- Il PITR non è mai stato attivato per la tabella —
PointInTimeRecoveryStatusèDISABLEDper impostazione predefinita su ogni nuova tabella. - Tabella o region errate — il
TableArndell'export punta a una tabella (o a una replica in un'altra Region) che non ha il PITR configurato. - Sembra simile, errore diverso — un
ExportTimefuori dalla finestra PITR non genera questa eccezione; fallisce conInvalidExportTimeException. La finestra copre il tuo periodo di recovery configurato (RecoveryPeriodInDays, 1–35 giorni) e non risale mai a prima del momento in cui il PITR è stato abilitato.
Come risolverlo
- Abilita il PITR sulla tabella di origine —
UpdateContinuousBackupsconPointInTimeRecoveryEnabled: true, o attivalo nella console sotto Backups. - Conferma che il PITR sia attivo —
DescribeContinuousBackupsdovrebbe riportarePointInTimeRecoveryStatus: ENABLED. (Non confonderlo conContinuousBackupsStatus, che è sempreENABLEDanche quando il PITR è disattivato.) Da quel momento in poi, qualsiasi punto nella finestra è esportabile. - Mantieni
ExportTimedentro la finestra — entro il tuo periodo di recovery configurato (fino a 35 giorni) e al momento in cui il PITR è stato abilitato o dopo; al di fuori otterraiInvalidExportTimeException. Omettilo per esportare il punto temporale corrente. - Conferma i permessi IAM — il chiamante necessita di
dynamodb:ExportTableToPointInTimepiùs3:PutObject,s3:PutObjectAcles3:AbortMultipartUploadsul bucket di destinazione. - Punta all'ARN e alla region corretti della tabella nella richiesta di export.
Devi verificare cosa è effettivamente atterrato in S3? L'app desktop DynoTable esplora la tabella di origine ed esporta gli stessi Item come CSV, JSON o NDJSON, così hai qualcosa con cui confrontare gli oggetti su S3.
Riproducilo
Crea una tabella, lascia il PITR disattivato e richiedi un export. Il bucket non deve necessariamente esistere — il controllo sul PITR viene eseguito per primo:
import boto3
ddb = boto3.client('dynamodb', region_name='us-east-1')
arn = ddb.describe_table(TableName='my-table')['Table']['TableArn']
ddb.export_table_to_point_in_time(TableArn=arn, S3Bucket='any-bucket-name')Output reale:
PointInTimeRecoveryUnavailableException: Point in time recovery is not enabled for table 'my-table'
HTTP 400Due dettagli da portarti nella gestione degli errori. Il messaggio grezzo dell'SDK è solo la frase qui sopra — la forma più lunga An error occurred (PointInTimeRecoveryUnavailableException) when calling the ExportTableToPointInTime operation: … è il wrapper dell'AWS CLI e di botocore che aggiunge contesto, quindi quale dei due vedi dipende da come hai effettuato la chiamata. E la richiesta non ha mai raggiunto S3: il bucket di questa esecuzione non esiste, eppure il fallimento riguarda il PITR, quindi un refuso nel nome del bucket non emergerà finché il PITR non è attivo.
Errori correlati
- BackupNotFoundException — un ARN di backup on-demand referenziato non esiste.
- ResourceNotFoundException — la tabella stessa non è stata trovata.
- Impara: DynamoDB backup & PITR
Riferimenti
- ExportTableToPointInTime — Amazon DynamoDB API Reference
- Requesting a table export in DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB data export to Amazon S3: how it works — Amazon DynamoDB Developer Guide
- Enable point-in-time recovery in DynamoDB — Amazon DynamoDB Developer Guide
- DescribeContinuousBackups — Amazon DynamoDB API Reference
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.
Riprodotto il 2026-07-26 sul servizio DynamoDB live in us-east-1 tramite boto3 1.43.56 — l'output qui sopra è riportato alla lettera.