An Amazon SQS and Lambda receiver for @node-ts/bus.
This package allows the host application to receive SQS messages via a Lambda handler directly, rather than subscribing to the SQS transport.
🔥 View our docs at https://bus.node-ts.com 🔥
🤔 Have a question? Join the Discussion 🤔
Install packages and their dependencies
npm i @node-ts/bus-sqs-lambda @node-ts/bus-sqs @node-ts/bus-core
Once installed, configure Bus to use this receiver during initialization:
import { Bus } from '@node-ts/bus-core'
import { SqsTransport, SqsTransportConfiguration } from '@node-ts/bus-sqs'
import { BusSqsLambdaReceiver } from '@node-ts/bus-sqs-lambda'
const sqsConfiguration: SqsTransportConfiguration = {
awsRegion: process.env.AWS_REGION,
awsAccountId: process.env.AWS_ACCOUNT_ID,
queueName: `my-service`,
deadLetterQueueName: `my-service-dead-letter`
}
const sqsTransport = new SqsTransport(sqsConfiguration)
// Configure Bus to run in a Lambda
const bus = Bus.configure()
.withTransport(sqsTransport)
.withReceiver(new BusSqsLambdaReceiver())
.build()
await bus.initialize()
Once configured and initialized, any Lambda that is triggered by SQS messages can send these messages to Bus for processing and dispatch using the bus.receive
method:
// Your lambda code
module.exports.handler = bus.receive