/cdk-lambda-node-18

Example cdk app with node 18 lambda. This is a proof-of-concept.

Primary LanguageTypeScript

AWS CDK NodeJs 18 lambda example

This is a example implementation of the releases NodeJs 18 AWS Lambda runtime.

aws/aws-lambda-base-images#47

Useful commands

  • npm run build compile typescript to js
  • npm run watch watch for changes and compile
  • npm run test perform the jest unit tests
  • cdk deploy deploy this stack to your default AWS account/region
  • cdk diff compare deployed stack with current state
  • cdk synth emits the synthesized CloudFormation template

Test Results

CloudWatch Logs Insights
region: eu-central-1
log-group-names: /aws/lambda/CdkLambdaNode18Stack-Node18Fetch3F1E5CAE-HsbtJibWL1Au
start-time: -3600s
end-time: 0s
query-string:

fields @timestamp, @message
| filter @type="REPORT" and ispresent(@initDuration)
| stats count() as coldStarts,avg(@memorySize / 1000000), avg(@initDuration),  min(@initDuration), max(@initDuration) ,avg(@billedDuration), min(@billedDuration), max(@billedDuration) by  bin (10m) as testTime
| sort testTime desc
| limit 2000

testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 14:30:00.000 100 1024 249.9074 204.93 450.98 188.25 158 253
2022-11-18 14:20:00.000 100 128 259.8056 206.34 413.57 1590.83 1393 2013
2022-11-18 13:40:00.000 100 512 283.1583 202.55 592.84 381.15 327 477

CloudWatch Logs Insights
region: eu-central-1
log-group-names: /aws/lambda/CdkLambdaNode18Stack-Node18AwsSdk49BEFC9D-trAehD6a0MAJ
start-time: -3600s
end-time: 0s
query-string:

fields @timestamp, @message
| filter @type="REPORT" and ispresent(@initDuration)
| stats count() as coldStarts,avg(@memorySize / 1000000), avg(@initDuration),  min(@initDuration), max(@initDuration) ,avg(@billedDuration), min(@billedDuration), max(@billedDuration) by  bin (10m) as testTime
| sort testTime desc
| limit 2000

testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 14:30:00.000 100 1024 485.5347 388.85 1117.57 109.82 94 175
2022-11-18 14:20:00.000 100 128 474.294 388.1 854.29 973.11 887 1076
2022-11-18 13:40:00.000 100 512 496.2744 389.71 679.39 210.08 183 300

CloudWatch Logs Insights
region: eu-central-1
log-group-names: /aws/lambda/CdkLambdaNode18Stack-Node1853A2725A-b7o1yolM1IXi
start-time: -3600s
end-time: 0s
query-string:

fields @timestamp, @message
| filter @type="REPORT" and ispresent(@initDuration)
| stats count() as coldStarts,avg(@memorySize / 1000000), avg(@initDuration),  min(@initDuration), max(@initDuration) ,avg(@billedDuration), min(@billedDuration), max(@billedDuration) by  bin (10m) as testTime
| sort testTime desc
| limit 2000

testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 14:30:00.000 100 1024 492.5333 381.48 746.23 377.66 308 450
2022-11-18 14:20:00.000 100 128 511.5969 381 960.4 3920.13 3533 4231
2022-11-18 13:50:00.000 100 512 492.3161 371.02 1050.81 855.3 674 1088

Comparison

128mb


testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 14:20:00.000 100 128 259.8056 206.34 413.57 1590.83 1393 2013
2022-11-18 14:20:00.000 100 128 474.294 388.1 854.29 973.11 887 1076
2022-11-18 14:20:00.000 100 128 511.5969 381 960.4 3920.13 3533 4231

512mb


testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 13:40:00.000 100 512 283.1583 202.55 592.84 381.15 327 477
2022-11-18 13:40:00.000 100 512 496.2744 389.71 679.39 210.08 183 300
2022-11-18 13:50:00.000 100 512 492.3161 371.02 1050.81 855.3 674 1088

1024mb


testTime coldStarts avg(@memorySize / 1000000) avg(@initDuration) min(@initDuration) max(@initDuration) avg(@billedDuration) min(@billedDuration) max(@billedDuration)
2022-11-18 14:30:00.000 100 1024 249.9074 204.93 450.98 188.25 158 253
2022-11-18 14:30:00.000 100 1024 485.5347 388.85 1117.57 109.82 94 175
2022-11-18 14:30:00.000 100 1024 492.5333 381.48 746.23 377.66 308 450