@lumston/sqs-sns-broker
v0.14.3
Published
simple implementation of Amazon Simple Queue Service (SQS) and Amazon Simple Notification Service (SNS)
Downloads
747
Keywords
Readme
Table of Contents
About
Welcome to the specialized AWS SNS/SQS integration library for NestJS, designed to enhance message handling efficiency in microservices environments. This library, crafted with the NestJS ecosystem in mind, provides an additional layer of control for implementing Amazon Web Services (AWS) Simple Notification Service (SNS) and Simple Queue Service (SQS).
Connection Managment
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Installing
npm i @lumston/sqs-sns-broker
or
yarn add @lumston/sqs-sns-broker
Usage
//app.module.ts
import {BrokerModule} from '@lumston/sqs-sns-broker';
@Module({
imports:[
BrokerModule.forRoot({
isGlobal: true,
aws: {
region: 'us-east-1',
credentials: fromEnv(),
},
})
]
})
or
//app.module.ts
import {BrokerModule, IBrokerConnectionOptions} from '@lumston/sqs-sns-broker';
@Module({
imports:[
BrokerModule.forRootAsync({
inject: [ConfigService],
useFactory: async (configService: ConfigService) => {
const local = configService.get<ILocal>(NAMESPACES.LOCAL);
const connection: IBrokerConnectionOptions = {
aws: {
region: local.aws_default_region,
credentials: fromEnv(),
},
};
return connection;
},
}),
]
})
Sending Messages to topic
The module exports the service SNSService
, which provides us with the function called publish
This function allows us to send messages to the selected topic.
export enum PUBLISH_ACTIONS {
UPDATE,
DELETE,
CREATE,
GET,
}
interface IPublish<T> {
//** Metadata about source of message **//
Source: string;
//** Action to perfom by message reciver **//
Action: keyof typeof PUBLISH_ACTIONS | string;
//** Message to send **//
Message: T;
//** The topic arn**/
TopicArn: string;
//** Metadatada about object information **//
UpdatedAttributes: string;
}
import { SNSService } from '@lumston/sqs-sns-broker';
class MyPublisherService{
constructor(private snsService: SNSService){}
sendMessage(){
await this.snsService.publish({
Source: "USERS",
Action: 'CREATE',
Message: {
name: 'Jhon Doe',
age: 18,
},
TopicArn: 'arn:aws:sns:us-east-1:123456789012:MyTopic',
UpdatedAttributes: ['name','age'],
});
}
}
⛏️ Construido usando
- NESTJS - Framework
✍️ Autores
- [email protected] - Idea y trabajo inicial
- [email protected] - Idea e implementación
- [email protected] - Idea e implementación