Amazon Kinesis & AWS Lambda Tentatives

Je suis très nouveau pour Amazon Kinesis c'est peut-être juste un problème dans ma compréhension, mais dans le AWS Lambda FAQ il dit:

Le Amazon Kinesis et DynamoDB Streams dossiers envoyés à votre AWS Lambda fonction sont strictement sérialisé, par fragment. Cela signifie que si vous mettez les deux enregistrements dans le même fragment, Lambda garantit que votre fonction Lambda sera invoquée avec succès avec le premier enregistrement avant de elle est invoquée avec le deuxième enregistrement. Si l'invocation pour un temps records, est étranglé, ou des rencontres de toute autre erreur, Lambda va réessayer jusqu'à ce qu'il réussit (ou le record atteint son de 24 heures de l'expiration) avant de passer à l'enregistrement suivant. L'ordre des enregistrements dans différents fragments n'est pas garanti, et le traitement de chaque fragment qui se passe en parallèle.

Ma question est, ce qui se passe si, pour quelque raison que certaines des données malformées est mis sur un serveur par un producteur, et lorsque la fonction Lambda ramasse il erreurs et, ensuite, ne cesse de réessayer en permanence? Ensuite, cela signifie que le traitement de ce fragment serait bloqué pour 24 heures par l'erreur.

Est la meilleure pratique pour gérer les erreurs d'application comme ça en enveloppant le problème dans un message d'erreur personnalisé et l'envoi de cette erreur en aval le long avec tous les traités avec succès des dossiers et de laisser le consommateur? Bien sûr, ce n'est pas de l'aide dans le cas d'une erreur irrécupérable qui s'est écrasé le programme comme un pointeur null: encore une fois, nous serons de retour pour le blocage de la boucle de nouvelle tentative pour les prochaines 24 heures.

OriginalL'auteur Stefano | 2015-09-10