A middy middleware to make your Lambda Handler idempotent.

import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware';
import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb';
import middy from '@middy/core';

const persistenceStore = new DynamoDBPersistenceLayer({
tableName: 'idempotencyTable',
});

export const handler = middy(
async (_event: unknown, _context: unknown): Promise<void> => {
// your code goes here
}
).use(makeHandlerIdempotent({ persistenceStore: dynamoDBPersistenceLayer }));

For the middleware to work, your Lambda function handler must return a value different from undefined. This is a known limitation of the early return feature in Middy.js.

If your use case requires early returns, you can use the makeIdempotent() function wrapper instead.