DynamoDB cannot access stream — stream is not enabled
TL;DR — Un consommateur (une source d'événements Lambda, un lecteur Kinesis Adapter, ou un appel brut DescribeStream/GetShardIterator) a essayé de lire un stream DynamoDB sur une table où Streams est désactivé, ou il a utilisé un ARN de stream périmé datant d'avant la réactivation de Streams. Active DynamoDB Streams sur la table et pointe le consommateur vers le LatestStreamArn actuel de la table.
Ce que ça signifie
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 est une fonctionnalité opt-in. Une table n'a un stream que lorsque tu définis un StreamSpecification avec StreamEnabled: true. Si un lecteur — le plus souvent une source d'événements Lambda — est câblé à une table qui n'a pas de stream actif (ou à un ARN qui n'existe plus), le mapping ne peut pas s'attacher et signale qu'il ne peut pas accéder au stream.
Pourquoi ça arrive
- Streams n'a jamais été activé sur la table, mais un consommateur en attend un.
- Streams a été désactivé puis réactivé — chaque activation crée un ARN de stream tout neuf (avec un suffixe d'horodatage frais). Un consommateur détenant l'ancien ARN lit un stream désactivé qui reste lisible pendant au plus 24 heures de plus, puis ses enregistrements expirent.
- Dérive de l'infrastructure-as-code — un consommateur CDK/CloudFormation/Terraform référence une table importée par nom/ARN qui n'a pas propagé sa config de stream, donc l'outillage pense que Streams est désactivé.
- Mauvais ARN de stream — utiliser l'ARN de table, ou un placeholder
.../stream/latest, au lieu du vraiLatestStreamArn.
Comment le corriger
- Active Streams sur la table. Définis
StreamSpecification{ StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES }(ou le type de vue dont ton consommateur a besoin) viaUpdateTable, la console, ou ton IaC. - Lis l'ARN de stream actuel. Appelle
DescribeTableet utilise le champLatestStreamArn— jamais un ARN construit à la main ou mis en cache. - Re-pointe le consommateur vers le nouvel ARN après tout cycle désactivation/activation ; recrée la source d'événements Lambda si elle était liée à l'ancien stream.
- Accorde la permission de lecture — le rôle du consommateur a besoin de
dynamodb:DescribeStream,GetRecords,GetShardIteratoretListStreamssur l'ARN du stream. - Ne confonds pas ARN de table et ARN de stream — l'ARN de stream se termine par
/stream/<horodatage>, l'ARN de table non.
Tu as besoin d'inspecter la table et sa configuration de stream sans la console ? L'application de bureau DynoTable fait ressortir le statut du stream à côté de la table pour que tu puisses confirmer qu'il est activé avant de pointer un lecteur dessus.
Avant de réessayer dans DynoTable
Avant d'attacher un event source mapping Lambda, ouvre la table dans DynoTable et confirme que Streams est activé et quel StreamViewType est en place (détails de la table). DynoTable affiche la configuration du flux à côté du schéma : pas besoin de faire un détour par la console AWS.
Quand tu désactives puis réactives Streams, l'ARN change — rafraîchis la table dans DynoTable et copie l'identité de flux actuelle depuis AWS (LatestStreamArn via la CLI/DescribeTable) dans le consommateur. Sers-toi de ⌘P pour rester sur le bon profil de compte/région. L'inspection quotidienne des éléments reste dans DynoTable ; les consommateurs de flux restent dans l'outillage Lambda/Kinesis. Le query builder aide à vérifier que la table sert toujours des lectures par clé après un basculement de Streams.
Sources
- Change data capture for DynamoDB Streams (vérifié le 2026-07-13)
- Process Amazon DynamoDB records with Lambda (vérifié le 2026-07-13)
Erreurs liées
- ResourceNotFoundException — la table ou l'ARN du stream n'existe pas du tout.
- The ARN provided is invalid — un ARN de stream malformé.
- En savoir plus : DynamoDB Streams
Références
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- Process Amazon DynamoDB records with Lambda — AWS Lambda Developer Guide
- StreamSpecification — Amazon DynamoDB API Reference
- DescribeTable — Amazon DynamoDB API Reference
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.