TODO
Run npm install @mvf/servicer-sqs
Set the following environment variables in your project
-
ENVIRONMENT_FILE
should be set todevelopment
|testing
|staging
|production
First setup sqs service, create src/Services/Sqs.ts
import { SQS } from '@aws-sdk/client-sqs';
import Environment from '../Setup/Environment';
let client: SQS | undefined;
export const Sqs = (): SQS => {
if (!client) {
const endpoint = Environment.AWS_ENDPOINT;
client = endpoint
? new SQS({
endpoint,
credentials: {
accessKeyId: 'dev',
secretAccessKey: 'dev',
},
})
: new SQS({});
}
return client;
};
Then setup SqsDaemon, create src/Setup/Sqs/SqsDaemon.ts
import { SqsMany, sqsConfig } from '@mvf/servicer-sqs';
import Environment from '../Environment';
import {
InternalSqsEvents,
} from '../../EventSources/Sqs';
import { Sqs } from '../../Services/Sqs';
const template = Environment.SQS_URL_TEMPLATE;
export const SqsDaemon = new SqsMany([
sqsConfig(InternalSqsEvents, template, 'internal', Sqs()),
// Add sqs config for each sqs queue you want to consume from
]);
Finally setup app entrypoint, create src/entrypoint.ts
import { Application, DaemonCommand } from "@mvf/servicer";
import { SqsDaemon } from './Setup/Sqs/SqsDaemon';
const setupApplication = async (): Promise<void> => {
const application = new Application();
application.addCommands(
new DaemonCommand(SqsDaemon),
);
await application.run();
};
void setupApplication();
- Run
make
to build the container - Run
make shell
to enter the container - Run
npm install
to install dependencies
Refer to package.json for commands
After you have merged a PR to master, you need to rebuild and publish your changes.
- Checkout master
git checkout master && git pull
- Use one of the following make publish commands to publish changes:
-
make publish kind=patch
- Use this if your change is a bug fix and is backwards compatible. -
make publish kind=minor
- Use this if your change adds new functionality and is backwards compatible. -
make publish kind=major
- Use this if your change is not backwards compatible.
-