2017-10-12 5 views
1

Ich sende Ereignisse an AWS Kinesis und diese werden von einer AWS Lambda-Funktion verarbeitet. Wenn jedoch das Lambda einen Fehler verursacht, werden die Datensätze nicht verworfen und immer wieder verarbeitet, wodurch die Verarbeitung neuer Datensätze blockiert wird.Wie verwerfen Sie Datensätze?

Ich möchte lieber den fehlerhaften Datensatz überspringen und neue Datensätze verdauen. Ich verstehe nicht, wie das geht.

Die Lambda-Funktion fängt jede Ausnahme ab, daher sollte es keinen Ausführungsfehler geben.

Hier unten das Snippet in Python.

Ich verstehe, dass Lambda sollte während der „Vorratsdatenspeicherung“ Zeitraum (24h Standard) erneut versucht werden, aber ich möchte verwerfen, und melden Sie sich schließlich jede Art von Fehler

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} 

Ich glaube, ich dieses lambda retries gefolgt .. .aber ich sehe nicht, was ich falsch mache

Antwort

Verwandte Themen