-
Notifications
You must be signed in to change notification settings - Fork 153
/
Copy pathlayerPublisher.class.test.functionCode.ts
45 lines (39 loc) · 1.31 KB
/
layerPublisher.class.test.functionCode.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { readFileSync } from 'node:fs';
import { Logger } from '@aws-lambda-powertools/logger';
import { Metrics } from '@aws-lambda-powertools/metrics';
import { Tracer } from '@aws-lambda-powertools/tracer';
import { SSMProvider } from '@aws-lambda-powertools/parameters/ssm';
const logger = new Logger({
logLevel: 'DEBUG',
});
const metrics = new Metrics();
const tracer = new Tracer();
new SSMProvider();
export const handler = (): void => {
// Check that the packages version matches the expected one
const packageJSON = JSON.parse(
readFileSync(
'/opt/nodejs/node_modules/@aws-lambda-powertools/logger/package.json',
{
encoding: 'utf8',
flag: 'r',
}
)
);
if (packageJSON.version != process.env.POWERTOOLS_PACKAGE_VERSION) {
throw new Error(
`Package version mismatch: ${packageJSON.version} != ${process.env.POWERTOOLS_PACKAGE_VERSION}`
);
}
// Check that the logger is working
logger.debug('Hello World!');
// Check that the metrics is working
metrics.captureColdStartMetric();
// Check that the tracer is working
const segment = tracer.getSegment();
const handlerSegment = segment.addNewSubsegment('### index.handler');
tracer.setSegment(handlerSegment);
tracer.annotateColdStart();
handlerSegment.close();
tracer.setSegment(segment);
};