3

Je crée une fonction Lambda (JavaScript) qui extrait exactement un enregistrement de plusieurs sources de flux DynamoDB possibles. La fonction inclut un insert DynamoDB sur une autre table, en tant que système audit-trail/notification.Flux AWS Lambda et DynamoDB. Que faire si l'exécution échoue? La prochaine tentative traitera-t-elle le même enregistrement?

Supposons qu'une exécution échoue en raison d'un étranglement (trop d'insertions par seconde). Lorsque j'appelle context.fail() lorsque le db.putItem échoue, je pense que cet enregistrement sera réessayé plus tard lors d'une autre exécution. Mais je suis inquiet au sujet de la commande.

Ma question est la suivante: Puis-je être sûr que l'exécution suivante de lambda (exécutée sur la même instance ou une autre) obtiendra cet enregistrement erroné à traiter? Et que le prochain enregistrement pour la même source ne sera pas traité jusqu'à ce que celui-ci soit traité avec succès? (Je n'ai que ce 'lecteur' pour les flux sources).

Sinon, comment puis-je y parvenir?

Merci

Répondre

2

flux Dynamo sont organisés en tessons, la commande à l'intérieur de tout tesson est conservé unique, et les dossiers seront rejugés avant de poursuivre. Lorsque plusieurs fragments sont présents, ils sont traités en parallèle. Les flux Dynamodb gèrent le sharding automatiquement de sorte que vous ne pouvez pas garantir la commande. En pratique, lorsque votre TPS est faible, vous ne devez utiliser que 1 fragment pour que l'ordre soit préservé. Je ne compterais pas là-dessus si