J'envoie des événements à AWS Kinesis et ceux-ci sont traités par une fonction AWS lambda. Cependant, si le lambda génère une erreur, les enregistrements ne sont pas supprimés et sont traités encore et encore, bloquant le traitement de nouveaux enregistrements.Comment faire pour annuler les enregistrements?
J'aimerais plutôt ignorer l'enregistrement défectueux et digérer de nouveaux enregistrements. Je ne comprends pas comment faire ça.
La fonction lambda intercepte toutes les exceptions et ne doit donc pas générer d'erreur d'exécution.
Ci-dessous l'extrait en python.
Je comprends que lambda doit être rejugé au cours de la période de « rétention » (par défaut 24h), mais je voudrais jeter et éventuellement connecter toute sorte d'erreurs
def ProcessKinesisRecords(event, context):
body = "ok"
response_code = 200
for record in event['Records']:
# Kinesis data is base64 encoded so decode here
try:
payload = base64.b64decode(record["kinesis"]["data"])
#...payload processing
except Exception as e:
body = e
return {"isBase64Encoded": True, "statusCode": response_code, "headers": { "x-custom-header": "headerValue" }, "body": body}
Je pense que je suivais ce lambda retries .. .mais je ne vois pas ce que je fais mal