DynamoDB Stream: il ARN fornito non è valido

TL;DR — Una chiamata Streams API (DescribeStream, GetShardIterator, GetRecords) ha ottenuto uno stream ARN che non è un descrittore di flusso corrente e ben formato, di solito un segnaposto /stream/latest, una tabella ARN per errore o un ARN obsoleto/troncato. Recupera il vero ARN da "LatestStreamArn" di DescribeTable e passalo parola per parola.

Cosa significa

ValidationException: The ARN provided is invalid

Un DynamoDB stream ARN ha una forma rigorosa:

arn:aws:dynamodb:us-west-2:111122223333:table/TestTable/stream/2015-05-11T21:21:33.291

Il finale /stream/<ISO-8601 timestamp> è un descrittore di flusso specifico, non un nome simbolico. L'endpoint Streams rifiuta tutto ciò che non viene analizzato come flusso esistente valido ARN con "Il ARN fornito non è valido".

Perché succede

  • Un segnaposto /stream/latest (o simile): alcuni strumenti ed emulatori locali lo accettano, ma il vero DynamoDB richiede il descrittore concreto con timestamp.
  • Passare la tabella ARN (.../table/TestTable) dove era previsto uno stream ARN.
  • A stantio ARN — I flussi sono stati disabilitati e riabilitati, quindi il flusso corrente della tabella ha un nuovo descrittore; il vecchio flusso rimane leggibile solo per 24 ore dopo essere stato disabilitato, poi i suoi record scadono.
  • Un ARN costruito a mano o troncato: regione sbagliata, account sbagliato, segmento /stream/... mancante o spazio bianco/riga in più.
  • Mancata corrispondenza della regione: il client Streams è configurato per una regione diversa rispetto alle codifiche ARN.

Come risolverlo

  1. Ottieni il ARN dalla fonte della verità. Chiama DescribeTable e leggi Table.LatestStreamArn; usa quella stringa esatta.
  2. Non sintetizzare mai ARN a mano o utilizzare /stream/latest — il segmento timestamp è assegnato da DynamoDB e non può essere indovinato.
  3. Utilizzare l'endpoint DynamoDB Streams, non l'endpoint principale DynamoDB, per DescribeStream/GetShardIterator/GetRecords.
  4. Abbina la regione del cliente alla regione nel ARN.
  5. Recupera nuovamente dopo qualsiasi attivazione/disattivazione dei flussi: un ciclo di disattivazione/attivazione crea un flusso nuovo di zecca con un descrittore diverso, quindi il precedente ARN non punta più al flusso live.
  6. Taglia gli spazi bianchi durante la copia. Un ritorno a capo finale su un ARN altrimenti valido continua a fallire la convalida.

Individualo in DynoTable

DynoTable mostra LatestStreamArn di ogni tabella nel pannello dei metadati della tabella: copialo parola per parola invece di creare manualmente i segnaposto /stream/latest. Apri la tabella con ⌘K ed espandi i dettagli Stream prima di collegare un consumatore Lambda o KCL.

Utilizza il Query Builder per confermare che la tabella è raggiungibile con lo stesso profilo proprietario dello stream. Cambia regione con ⌘P; Verifica connessione in Impostazioni → I profili devono corrispondere alla regione di ARN. Consulta Connetti a AWS e Installa. Non creare mai manualmente il suffisso /stream/<timestamp>: copia ogni volta LatestStreamArn da DescribeTable. Una tabella ARN (.../table/Name) non è un flusso ARN e attiva lo stesso errore di convalida.

Fonti

Errori correlati

Riferimenti

Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.