shared Lambda logic
npm install everywareukThis package contains a number of useful types and functions used in Lambda functions.
These functions make use of a number of environment variables. Make sure these are set correctly.
- SQS_DELAY_SECONDS
- TARGET_ENV
The type required for all samples pushed to the ingestion pipeline
``
interface sendMessage {
(data: string, queueName = process.env.OUTPUT_QUEUE): Promise
}
interface sendErrorMessage {
(
lambdaName: string,
errorType: string,
dataString: string,
errorString: string,
queueName = process.env.OUTPUT_QUEUE
): Promise
}
/* takes a sample and:
- checks the MTC, DeviceID exists
- sets device status and lastSampleAt
- updates the measure data
*/
interface updateMeasure {
(sample: EverywareSample): Promise
}
/*
takes the body value from the lambda argument
returns a valid EverywareSample object
throws and error if body value is null or not valid
*/
interface validateEverywareSample {
(body: string): EverywareSample
}
`
this is a winston logger object configured with a custom _format_ and _transport_.
The log level is determined by the LOG_LEVEL environment variable, range "0" (least verbose) to "6" (most verbose).
Example usage:
``
logger.log()
logger.error()
export { type EverywareSample } from './lib/types.ts'
export { headers } from './lib/headers.ts'
To build the NPM module:
- increment the version in the build_npm.ts file.
`
$ deno run -A build_npm.ts
$ cd npm
$ npm publish --access public
$ deno run -A build_npm.ts && cd npm && npm publish --access public && cd ..
``
When a new version is published make sure you update the version in each of the package.json files and npm install.
npm list everywareuk