1.0.30 • Published 4 months ago

aws-message-bus-package v1.0.30

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Message Bus SDK for AWS Resources

NPM version

Table of Contents

Getting Started

1. Install

npm install aws-message-bus-package

2. Config File

You need to create a config.json file in your root/src project and input some AWS informations, like bellow:

{
    "host": "localhost",
    "port": 4566,
    "region": "eu-west-2",
    "account": "000000000000",
    "snsArn": "arn:aws:sns",
    "sqsArn": "arn:aws:sqs",
    "awsHost": "localhost.localstack.cloud",
    "tags": [
        { "Key": "team", "Value": "your-team-name" },
        { "Key": "appName", "Value": "your-app-name" }
    ],
    "testMode": false
}

3. Sample Usage

const { Infrastructure } = require('aws-message-bus-package');

async () => await Infrastructure.createQueue('your-queue-name');
async () => await Infrastructure.createTopic('your-topic-name');
async () => await Infrastructure.bindTopic('your-topic-name', 'your-queue-name');

API

Infrastructure.createQueue('queue-name')

Create a new SQS queue

Infrastructure.bindTopic('topic-name', 'queue-name')

  • Create a new SNS topic, if not exists
  • Subscribe a SNS topic in a SQS queue

Service.publishMessage('topic-name', {CONTENT})

Send a message to SNS topic to do broadcast

  • Content: any kind of type/object, this will be transformed into a JSON format

Service.sendMessage('queue-name', {CONTENT}, {PARAMS})

Send a message to SQS queue direct

  • Content: any kind of type/object, this will be transformed into a JSON format
  • Params: SQS.Types.SendMessageRequest
    • You don't need to inform:
      • MessageBody
      • MessageAttributes
      • QueueUrl

Service.scheduleMessage('topic-name', {CONTENT}, [SCHEDULED_DATE])

Send a message to EventBridge informing the SNS topic with the destination. This message will be consumed when it arrives on the scheduled date.

  • Content: any kind of type/object, this will be transformed into a JSON format

Service.handleConsumerMessage('queue-name', {RESILIENCE_PARAMS})

Handle a consumer to consume queue messages

  • Resilience Params:
    • maxRetryCount: max number of attempts until send to DLQ
    • delaySeconds: the time that will wait between attempts
1.0.30

4 months ago

1.0.22

4 months ago

1.0.19

4 months ago

1.0.20

4 months ago

1.0.18

4 months ago

1.0.17

4 months ago

1.0.16

4 months ago

1.0.15

4 months ago

1.0.14

4 months ago

1.0.2

4 months ago

1.0.9

4 months ago

1.0.8

4 months ago

1.0.7

4 months ago

1.0.6

4 months ago

1.0.5

4 months ago

1.0.4

4 months ago

1.0.3

4 months ago

1.0.11

4 months ago

1.0.10

4 months ago

1.0.13

4 months ago

1.0.12

4 months ago

1.0.1

4 months ago

1.0.0

4 months ago