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).
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"
}
*/
})();
Total duration of SAM local lambda with and without worker threads running on a Quad-core machine.
- 20073.56 ms
- 20373.04 ms
- 23854.06 ms
- 23107.90 ms
- 24376.02 ms
- 24748.50 ms
- 160664.08 ms
- 170526.89 ms
- 160884.88 ms
- 161868.81 ms
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
This library is licensed under the MIT License.