DynamoDB Stream filters comparing values in NewImage and OldImage

1

I have a table MyTable with count (numeric) among its fields.

I want my CountListener function to be triggered each time the value of count gets updated, for any item in the table.

I've enabled the stream (New and old images) for the table and now I need to write a filter for the stream events in order to invoke CountListener all and only each time count changes.

From the docs I see how to write a filter that compares the value of a field with a constant value: I wonder if I can compare the value of count in NewImage against the one in OldImage and trigger the lambda if and only if they're different.

1개 답변
1
수락된 답변

It is not possible to achieve your goal with Lambda event filtering at the time of writing this for two reasons:

  1. There is no "numeric not equal" operator
  2. It is not possible to compare two fields of the stream data with each other.
AWS
Aslan G
답변함 2년 전
  • Thank you for your answer.

    So, since the code knows whether the "count" field is going to be written, I could add a new (perhaps boolean) field like "updatedCount" set to true when a value for "count" is being set.

    Then, the trigger could be activated by a filter like '{"dynamodb": {"NewImage": {"updatedCount": [true]}}}'. Does it make any sense to you? If not, what would you suggest?

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠