Skip to content

Commit 4a684f2

Browse files
authored
build: set lambda to log as JSON (#3362)
### Motivation since the end of 2023, lambda functions can now output JSON as their logging format, since all of our other logs are structured move to JSON logs for everything ### Modifications Convert lambda functions to log as JSON ### Verification Need to verify everything is working correctly after deploy, eg alerts/log shipping
1 parent 6655441 commit 4a684f2

File tree

4 files changed

+102
-68
lines changed

4 files changed

+102
-68
lines changed

package-lock.json

Lines changed: 92 additions & 60 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/_infra/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
"@basemaps/lambda-tiler": "^7.11.0",
3030
"@basemaps/shared": "^7.11.0",
3131
"@linzjs/cdk-tags": "^1.7.0",
32-
"aws-cdk": "2.114.x",
33-
"aws-cdk-lib": "2.114.x",
34-
"constructs": "^10.3.0"
32+
"aws-cdk": "2.162.x",
33+
"aws-cdk-lib": "2.162.x",
34+
"constructs": "^10.4.2"
3535
}
3636
}

packages/_infra/src/analytics/edge.analytics.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Env } from '@basemaps/shared';
22
import { Duration, Stack, StackProps } from 'aws-cdk-lib';
33
import { Rule, Schedule } from 'aws-cdk-lib/aws-events';
44
import { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';
5-
import lf from 'aws-cdk-lib/aws-lambda';
5+
import lambda from 'aws-cdk-lib/aws-lambda';
66
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
77
import { BlockPublicAccess, Bucket } from 'aws-cdk-lib/aws-s3';
88
import { Construct } from 'constructs';
@@ -18,7 +18,7 @@ export interface EdgeAnalyticsProps extends StackProps {
1818
* Every hour create analytics based off the logs given to us from cloudwatch
1919
*/
2020
export class EdgeAnalytics extends Stack {
21-
public lambda: lf.Function;
21+
public lambda: lambda.Function;
2222

2323
public constructor(scope: Construct, id: string, props: EdgeAnalyticsProps) {
2424
super(scope, id, props);
@@ -31,19 +31,20 @@ export class EdgeAnalytics extends Stack {
3131
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
3232
});
3333

34-
this.lambda = new lf.Function(this, 'AnalyticLambda', {
35-
runtime: lf.Runtime.NODEJS_18_X,
34+
this.lambda = new lambda.Function(this, 'AnalyticLambda', {
35+
runtime: lambda.Runtime.NODEJS_18_X,
3636
memorySize: 2048,
3737
timeout: Duration.minutes(10),
3838
handler: 'index.handler',
39-
code: lf.Code.fromAsset(CODE_PATH),
39+
code: lambda.Code.fromAsset(CODE_PATH),
4040
environment: {
4141
[Env.Analytics.CloudFrontId]: distributionId,
4242
[Env.Analytics.CacheBucket]: `s3://${cacheBucket.bucketName}`,
4343
[Env.Analytics.CloudFrontSourceBucket]: `s3://${logBucket.bucketName}`,
4444
AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1',
4545
},
4646
logRetention: RetentionDays.ONE_MONTH,
47+
loggingFormat: lambda.LoggingFormat.JSON,
4748
});
4849

4950
cacheBucket.grantReadWrite(this.lambda);

packages/_infra/src/serve/lambda.tiler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ export class LambdaTiler extends Construct {
5454
architecture: lambda.Architecture.ARM_64,
5555
environment,
5656
logRetention: RetentionDays.ONE_MONTH,
57+
loggingFormat: lambda.LoggingFormat.JSON,
5758
});
5859

5960
this.functionUrl = new lambda.FunctionUrl(this, 'LambdaCogUrl', {

0 commit comments

Comments
 (0)