0.14.3 • Published 13 days ago

@lumston/sqs-sns-broker v0.14.3

Weekly downloads
-
License
MIT
Repository
-
Last release
13 days ago

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

✍️ Autores

0.14.3

13 days ago

0.14.2

16 days ago

0.14.0

3 months ago

0.13.1

5 months ago

0.11.0

9 months ago

0.12.0

6 months ago

0.13.0

5 months ago

0.12.1

6 months ago

0.12.2

5 months ago

0.12.3

5 months ago

0.12.4

5 months ago

0.12.5

5 months ago

0.12.6

5 months ago

0.10.13

11 months ago

0.10.12

11 months ago

0.10.11

11 months ago

0.10.10

11 months ago

0.0.9

11 months ago

0.0.8

11 months ago

0.0.7

11 months ago

0.0.6

11 months ago

0.0.5

11 months ago

0.0.4

12 months ago