DynamoDB non può accedere allo streaming: lo streaming non è abilitato

TL;DR — Un consumer (una mappatura dell'origine evento Lambda, un lettore Kinesis Adapter o una chiamata DescribeStream/GetShardIterator non elaborata) ha provato a leggere un flusso DynamoDB su una tabella in cui i flussi sono disattivati oppure ha utilizzato un flusso obsoleto ARN prima che i flussi fossero riattivati. Abilita DynamoDB flussi sulla tabella e indirizza il consumatore al LatestStreamArn corrente della tabella.

Cosa significa

Cannot access stream arn:aws:dynamodb:us-east-1:111122223333:table/Orders/stream/... .
Please ensure the ARN is correct and the stream is enabled.

DynamoDB Streams must be enabled on the table.

DynamoDB Streams è una funzionalità attivabile. Una tabella ha un flusso solo quando imposti una StreamSpecification con StreamEnabled: true. Se un lettore, nella maggior parte dei casi una mappatura dell'origine evento Lambda, è collegato a una tabella che non ha un flusso attivo (o a un ARN che non esiste più), la mappatura non può collegarsi e segnala che non può accedere al flusso.

Perché succede

  • I flussi non sono mai stati abilitati sulla tabella, ma un consumatore se lo aspetta.
  • Gli stream sono stati disabilitati e riabilitati: ciascuno di essi conia uno stream nuovo di zecca ARN (con un nuovo suffisso timestamp). Un consumatore che detiene il vecchio ARN sta leggendo un flusso disabilitato che rimane leggibile per un massimo di altre 24 ore, poi i suoi record scadono.
  • Deriva dell'infrastruttura come codice: un consumer CDK/CloudFormation/Terraform fa riferimento a una tabella importata da name/ARN che non ha propagato la configurazione del flusso, quindi gli strumenti ritengono che gli stream siano disattivati.
  • Stream errato ARN — utilizzando la tabella ARN o un segnaposto .../stream/latest, invece del vero LatestStreamArn.

Come risolverlo

  1. Abilita i flussi sulla tabella. Imposta StreamSpecification { StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES } (o qualsiasi tipo di visualizzazione di cui il tuo consumatore ha bisogno) tramite UpdateTable, la console o il tuo IaC.
  2. Leggi lo stream corrente ARN. Chiama DescribeTable e utilizza il campo LatestStreamArn — mai un ARN creato manualmente o memorizzato nella cache.
  3. Riorientare l'utente al nuovo ARN dopo ogni ciclo di disabilitazione/abilitazione; ricreare la mappatura dell'origine dell'evento Lambda se era associato al vecchio flusso.
  4. Concedi l'autorizzazione di lettura: il ruolo del consumatore necessita di dynamodb:DescribeStream, GetRecords, GetShardIterator e ListStreams sullo stream ARN.
  5. Non confondere la tabella con lo stream ARN — lo stream ARN termina con /stream/<timestamp>, la tabella ARN no.

Hai bisogno di ispezionare la tabella e la relativa configurazione del flusso senza la console? L'DynoTable app desktop mostra lo stato dello streaming accanto alla tabella in modo da poter verificare che sia attivo prima di indirizzare un lettore verso di esso.

Prima di riprovare in DynoTable

Prima di allegare una mappatura dell'origine evento Lambda, apri la tabella in DynoTable e conferma che Streams è abilitato e quale StreamViewType è impostato (dettagli della tabella). DynoTable mostra la configurazione del flusso accanto allo schema in modo da non dover rimbalzare attraverso la console AWS.

Dopo aver disabilitato e riabilitato gli Stream, ARN cambia: aggiorna la tabella in DynoTable e copia l'identità del flusso corrente da AWS (LatestStreamArn tramite CLI/DescribeTable) nel consumer. Utilizza ⌘P per rimanere sul profilo account/regione corretto. L'ispezione quotidiana degli articoli rimane in DynoTable; i consumatori del flusso rimangono negli strumenti Lambda/Kinesis. Il generatore di query aiuta a verificare che la tabella fornisca ancora letture con chiave dopo l'attivazione/disattivazione di Streams.

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.