worker-pool-aws-sdk
v0.1.0
Published
Simple pool of workers to make API calls using the AWS SDK, while leveraging Node.js Worker threads.
Downloads
1,055
Readme
Worker Pool for AWS SDK
Simple pool of workers to make API calls using the AWS SDK, while leveraging Node.js Worker threads.
This library uses Node.js Worker threads (it depends more specifically on Piscina.js).
Usage
Example
const STS = require('aws-sdk/clients/sts')
const WorkerPoolAwsSdk = require('worker-pool-aws-sdk');
const workerPool = new WorkerPoolAwsSdk();
(async function () {
const sts = new STS({ region: 'us-east-1' });
const result = await workerPool.runAwsTask({
name: 'sts',
options: sts.config,
operation: 'getCallerIdentity',
});
console.log(result);
/*
Prints result in this shape:
{
Account: "123456789012",
Arn: "arn:aws:iam::123456789012:user/Alice",
UserId: "AKIAI44QH8DHBEXAMPLE"
}
*/
})();
Benchmark
Total duration of SAM local lambda with and without worker threads running on a Quad-core machine.
Without worker threads (40 calls)
- 20073.56 ms
- 20373.04 ms
- 23854.06 ms
With worker threads (40 calls)
- 23107.90 ms
- 24376.02 ms
- 24748.50 ms
Without worker threads (400 calls)
- 160664.08 ms
- 170526.89 ms
With worker threads (400 calls)
- 160884.88 ms
- 161868.81 ms
Development
Check out the master branch and install dependencies to get started:
npm ci --optional
Now that you have the dependencies installed, you can run this command in the root folder to compile the whole project.
npm run build
Linting is done via TypeScript ESLint and running unit tests via Jest. The continuous integration runs these checks, but you can run them locally with:
npm run lint
npm test
License
This library is licensed under the MIT License.