1
votes

It is unclear to me why the lambda-based trigger I just recreated atop my DynamoDB stream has stopped firing. Per the docs, I know that the stream atop my single sharded DynamoDB instance sends the payloads synchronously and will not invoke subsequent batches until the previous one finishes.

Because I wanted to recreate the trigger with more batches processed per payload (from 100 to 5000) I took these steps:

  1. Deleted the trigger.
  2. Disabled the previous dynamodb stream;
  3. Re-enabled the stream (creating a new ARN with the updated timestamp);
  4. Recreated the trigger tied to the same lambda (with a batch size of 5000).

Either the lambda that polls the stream and sends those batches to my lambda is not polling OR by doing one of the above steps, I've voided the stream and it has no new results. But I've since updated dynamodb directly as well as inserted new rows. The trigger still hasn't fired.

I'm not sure what I'm missing?

1
Please check the event source mapping of Lambda using aws lambda list-event-source-mappings --function-name myFunctionnotionquest
Also, have 5000 events accumulated or more than 24 hours passed?Alexander Patrikalakis
@AlexanderPatrikalakis - when it has worked, i can see that the trigger fires whatever it accumulates events (up to 5k) as AWS uses an internal lambda to poll the dynamodb stream for events, then subsequently invokes my lambda with that payload - so neither waiting for 5k events or 24 hrs is a prerequisite here.TimDog
Please raise an issue in the AWS Lambda Forum so that AWS can review your usage.Alexander Patrikalakis

1 Answers

1
votes

Lambda functions may not execute for a variety of reasons.

  1. Lack of permissions
  2. Trigger not being enabled
  3. DynamoDB Stream being disabled
  4. Hitting Lambda region and account limits