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 veroLatestStreamArn.
Come risolverlo
- 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) tramiteUpdateTable, la console o il tuo IaC. - Leggi lo stream corrente ARN. Chiama
DescribeTablee utilizza il campoLatestStreamArn— mai un ARN creato manualmente o memorizzato nella cache. - 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.
- Concedi l'autorizzazione di lettura: il ruolo del consumatore necessita di
dynamodb:DescribeStream,GetRecords,GetShardIteratoreListStreamssullo stream ARN. - 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
- Modifica l'acquisizione dei dati per DynamoDB Streams (verificato il 13-07-2026)
- Elabora i record Amazon DynamoDB con Lambda (verificato il 13-07-2026)
Errori correlati
- ResourceNotFoundException — la tabella o il flusso ARN non esiste affatto.
- Il ARN fornito non è valido — un flusso non valido ARN.
- Impara: DynamoDB Streams
Riferimenti
- Modifica dell'acquisizione dati per DynamoDB Streams - Guida per sviluppatori di Amazon DynamoDB
- Elabora i record Amazon DynamoDB con Lambda — AWS Guida per sviluppatori Lambda
- StreamSpecification - Amazon DynamoDB API Riferimento
- DescribeTable - Riferimento Amazon DynamoDB API
Ultima verifica il 13-07-2026 rispetto alla documentazione ufficiale AWS collegata sopra.