sqs-partial-batch-failure
Middleware for handling partially failed SQS batches.
Install
To install this middleware you can use NPM:
- npm
- Yarn
npm install --save @middy/sqs-partial-batch-failure
yarn add @middy/sqs-partial-batch-failure
Options
AwsClient
(object) (defaultAWS.SQS
): AWS.SQS class constructor (e.g. that has been instrumented with AWS XRay). Must be fromaws-sdk
v2.awsClientOptions
(object) (optional): Options to pass to AWS.SQS class constructor.awsClientAssumeRole
(string) (optional): Internal key where role tokens are stored. See @middy/sts on to set this.awsClientCapture
(function) (optional): Enable XRay by passingcaptureAWSClient
fromaws-xray-sdk
in.disablePrefetch
(boolean) (defaultfalse
): On cold start requests will trigger early if they can. SettingawsClientAssumeRole
disables prefetch.
NOTES:
- Lambda is required to have IAM permission for
sqs:DeleteMessage
Sample usage
import middy from '@middy/core'
import sqsBatch from '@middy/sqs-partial-batch-failure'
const lambdaHandler = (event, context) => {
const recordPromises = event.Records.map(async (record, index) => {
/* Custom message processing logic */
return record
})
return Promise.allSettled(recordPromises)
}
export const handler = middy(lambdaHandler)
.use(sqsBatch())