Skip to content

Commit 73e6a6e

Browse files
authored
John/refactor integ tests (#978)
## Overview - Refactoring integ tests so we have a default runtime. For our use case, and at least for now, we don't need to test against multiple runtime version. For instance, Node24 is fine and we don't need to test against Node22, Node20, Node18, etc. - Fix the local_deploy script. When there are a lot of versions for a lambda layer, it is pulling 2 instead of just 1. - Update LMI to just deploy 1 instance instead of 3. - No functional changes.
1 parent e739a67 commit 73e6a6e

6 files changed

Lines changed: 88 additions & 75 deletions

File tree

integration-tests/lib/stacks/base.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ import {
66
defaultDatadogEnvVariables,
77
defaultDatadogSecretPolicy,
88
getExtensionLayer,
9-
getNode20Layer,
10-
getPython313Layer,
11-
getJava21Layer,
12-
getDotnet8Layer
9+
getDefaultNodeLayer,
10+
getDefaultPythonLayer,
11+
getDefaultJavaLayer,
12+
getDefaultDotnetLayer,
13+
defaultNodeRuntime,
14+
defaultPythonRuntime,
15+
defaultJavaRuntime,
16+
defaultDotnetRuntime
1317
} from '../util';
1418

1519
export class Base extends cdk.Stack {
@@ -18,15 +22,15 @@ export class Base extends cdk.Stack {
1822

1923
// Get layers once for the entire stack
2024
const extensionLayer = getExtensionLayer(this);
21-
const node20Layer = getNode20Layer(this);
22-
const python313Layer = getPython313Layer(this);
23-
const java21Layer = getJava21Layer(this);
24-
const dotnet8Layer = getDotnet8Layer(this);
25+
const nodeLayer = getDefaultNodeLayer(this);
26+
const pythonLayer = getDefaultPythonLayer(this);
27+
const javaLayer = getDefaultJavaLayer(this);
28+
const dotnetLayer = getDefaultDotnetLayer(this);
2529

2630
// Node.js Lambda
2731
const nodeFunctionName = `${id}-node-lambda`;
2832
const nodeFunction = new lambda.Function(this, nodeFunctionName, {
29-
runtime: lambda.Runtime.NODEJS_20_X,
33+
runtime: defaultNodeRuntime,
3034
architecture: lambda.Architecture.ARM_64,
3135
handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
3236
code: lambda.Code.fromAsset('./lambda/base-node'),
@@ -43,12 +47,12 @@ export class Base extends cdk.Stack {
4347
});
4448
nodeFunction.addToRolePolicy(defaultDatadogSecretPolicy);
4549
nodeFunction.addLayers(extensionLayer);
46-
nodeFunction.addLayers(node20Layer);
50+
nodeFunction.addLayers(nodeLayer);
4751

4852
// Python Lambda
4953
const pythonFunctionName = `${id}-python-lambda`;
5054
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
51-
runtime: lambda.Runtime.PYTHON_3_13,
55+
runtime: defaultPythonRuntime,
5256
architecture: lambda.Architecture.ARM_64,
5357
handler: 'datadog_lambda.handler.handler',
5458
code: lambda.Code.fromAsset('./lambda/base-python'),
@@ -68,12 +72,12 @@ export class Base extends cdk.Stack {
6872
});
6973
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
7074
pythonFunction.addLayers(extensionLayer);
71-
pythonFunction.addLayers(python313Layer);
75+
pythonFunction.addLayers(pythonLayer);
7276

7377
// Java Lambda
7478
const javaFunctionName = `${id}-java-lambda`;
7579
const javaFunction = new lambda.Function(this, javaFunctionName, {
76-
runtime: lambda.Runtime.JAVA_21,
80+
runtime: defaultJavaRuntime,
7781
architecture: lambda.Architecture.ARM_64,
7882
handler: 'example.Handler::handleRequest',
7983
code: lambda.Code.fromAsset('./lambda/base-java/target/function.jar'),
@@ -90,12 +94,12 @@ export class Base extends cdk.Stack {
9094
});
9195
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
9296
javaFunction.addLayers(extensionLayer);
93-
javaFunction.addLayers(java21Layer);
97+
javaFunction.addLayers(javaLayer);
9498

9599
// .NET Lambda
96100
const dotnetFunctionName = `${id}-dotnet-lambda`;
97101
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
98-
runtime: lambda.Runtime.DOTNET_8,
102+
runtime: defaultDotnetRuntime,
99103
architecture: lambda.Architecture.ARM_64,
100104
handler: 'Function::Function.Handler::FunctionHandler',
101105
code: lambda.Code.fromAsset('./lambda/base-dotnet/bin/function.zip'),
@@ -111,6 +115,6 @@ export class Base extends cdk.Stack {
111115
});
112116
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
113117
dotnetFunction.addLayers(extensionLayer);
114-
dotnetFunction.addLayers(dotnet8Layer);
118+
dotnetFunction.addLayers(dotnetLayer);
115119
}
116120
}

integration-tests/lib/stacks/lmi.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,29 @@ import {
77
defaultDatadogEnvVariables,
88
defaultDatadogSecretPolicy,
99
getExtensionLayer,
10-
getNode24Layer,
11-
getPython313Layer,
12-
getJava21Layer,
13-
getDotnet8Layer
10+
getDefaultNodeLayer,
11+
getDefaultPythonLayer,
12+
getDefaultJavaLayer,
13+
getDefaultDotnetLayer,
14+
defaultNodeRuntime,
15+
defaultPythonRuntime,
16+
defaultJavaRuntime,
17+
defaultDotnetRuntime
1418
} from '../util';
1519

1620
export class LambdaManagedInstancesStack extends cdk.Stack {
1721
constructor(scope: Construct, id: string, props: cdk.StackProps) {
1822
super(scope, id, props);
1923

2024
const extensionLayer = getExtensionLayer(this);
21-
const node24Layer = getNode24Layer(this);
25+
const nodeLayer = getDefaultNodeLayer(this);
26+
const pythonLayer = getDefaultPythonLayer(this);
27+
const javaLayer = getDefaultJavaLayer(this);
28+
const dotnetLayer = getDefaultDotnetLayer(this);
2229

2330
const nodeFunctionName = `${id}-node-lambda`;
2431
const nodeFunction = new lambda.Function(this, nodeFunctionName, {
25-
runtime: lambda.Runtime.NODEJS_24_X,
32+
runtime: defaultNodeRuntime,
2633
architecture: lambda.Architecture.ARM_64,
2734
handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
2835
code: lambda.Code.fromAsset('./lambda/lmi-node'),
@@ -40,15 +47,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
4047
setCapacityProvider(nodeFunction);
4148
nodeFunction.addToRolePolicy(defaultDatadogSecretPolicy);
4249
nodeFunction.addLayers(extensionLayer);
43-
nodeFunction.addLayers(node24Layer);
50+
nodeFunction.addLayers(nodeLayer);
4451
const nodeAlias = new lambda.Alias(this, `${nodeFunctionName}-alias`, {
4552
aliasName: 'lmi',
4653
version: nodeFunction.currentVersion,
4754
});
4855

4956
const pythonFunctionName = `${id}-python-lambda`;
5057
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
51-
runtime: lambda.Runtime.PYTHON_3_13,
58+
runtime: defaultPythonRuntime,
5259
architecture: lambda.Architecture.ARM_64,
5360
handler: 'datadog_lambda.handler.handler',
5461
code: lambda.Code.fromAsset('./lambda/lmi-python'),
@@ -67,15 +74,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
6774
setCapacityProvider(pythonFunction);
6875
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
6976
pythonFunction.addLayers(extensionLayer);
70-
pythonFunction.addLayers(getPython313Layer(this));
77+
pythonFunction.addLayers(pythonLayer);
7178
const pythonAlias = new lambda.Alias(this, `${pythonFunctionName}-alias`, {
7279
aliasName: 'lmi',
7380
version: pythonFunction.currentVersion,
7481
});
7582

7683
const javaFunctionName = `${id}-java-lambda`;
7784
const javaFunction = new lambda.Function(this, javaFunctionName, {
78-
runtime: lambda.Runtime.JAVA_21,
85+
runtime: defaultJavaRuntime,
7986
architecture: lambda.Architecture.ARM_64,
8087
handler: 'example.Handler::handleRequest',
8188
code: lambda.Code.fromAsset('./lambda/lmi-java/target/function.jar'),
@@ -93,15 +100,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
93100
setCapacityProvider(javaFunction);
94101
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
95102
javaFunction.addLayers(extensionLayer);
96-
javaFunction.addLayers(getJava21Layer(this));
103+
javaFunction.addLayers(javaLayer);
97104
const javaAlias = new lambda.Alias(this, `${javaFunctionName}-alias`, {
98105
aliasName: 'lmi',
99106
version: javaFunction.currentVersion,
100107
});
101108

102109
const dotnetFunctionName = `${id}-dotnet-lambda`;
103110
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
104-
runtime: lambda.Runtime.DOTNET_8,
111+
runtime: defaultDotnetRuntime,
105112
architecture: lambda.Architecture.ARM_64,
106113
handler: 'Function::Function.Handler::FunctionHandler',
107114
code: lambda.Code.fromAsset('./lambda/lmi-dotnet/bin/function.zip'),
@@ -119,7 +126,7 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
119126
setCapacityProvider(dotnetFunction);
120127
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
121128
dotnetFunction.addLayers(extensionLayer);
122-
dotnetFunction.addLayers(getDotnet8Layer(this));
129+
dotnetFunction.addLayers(dotnetLayer);
123130
const dotnetAlias = new lambda.Alias(this, `${dotnetFunctionName}-alias`, {
124131
aliasName: 'lmi',
125132
version: dotnetFunction.currentVersion,

integration-tests/lib/stacks/otlp.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import {
55
createLogGroup,
66
defaultDatadogEnvVariables,
77
defaultDatadogSecretPolicy,
8-
getExtensionLayer
8+
getExtensionLayer,
9+
defaultNodeRuntime,
10+
defaultPythonRuntime,
11+
defaultJavaRuntime,
12+
defaultDotnetRuntime
913
} from '../util';
1014

1115
export class Otlp extends cdk.Stack {
@@ -16,7 +20,7 @@ export class Otlp extends cdk.Stack {
1620

1721
const nodeFunctionName = `${id}-node-lambda`;
1822
const nodeFunction = new lambda.Function(this, nodeFunctionName, {
19-
runtime: lambda.Runtime.NODEJS_20_X,
23+
runtime: defaultNodeRuntime,
2024
architecture: lambda.Architecture.ARM_64,
2125
handler: 'index.handler',
2226
code: lambda.Code.fromAsset('./lambda/otlp-node'),
@@ -38,7 +42,7 @@ export class Otlp extends cdk.Stack {
3842

3943
const validationFunctionName = `${id}-response-validation-lambda`;
4044
const validationFunction = new lambda.Function(this, validationFunctionName, {
41-
runtime: lambda.Runtime.NODEJS_20_X,
45+
runtime: defaultNodeRuntime,
4246
architecture: lambda.Architecture.ARM_64,
4347
handler: 'response-validation.handler',
4448
code: lambda.Code.fromAsset('./lambda/otlp-node'),
@@ -58,7 +62,7 @@ export class Otlp extends cdk.Stack {
5862

5963
const pythonFunctionName = `${id}-python-lambda`;
6064
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
61-
runtime: lambda.Runtime.PYTHON_3_12,
65+
runtime: defaultPythonRuntime,
6266
architecture: lambda.Architecture.ARM_64,
6367
handler: 'lambda_function.handler',
6468
code: lambda.Code.fromAsset('./lambda/otlp-python/package'),
@@ -80,7 +84,7 @@ export class Otlp extends cdk.Stack {
8084

8185
const javaFunctionName = `${id}-java-lambda`;
8286
const javaFunction = new lambda.Function(this, javaFunctionName, {
83-
runtime: lambda.Runtime.JAVA_21,
87+
runtime: defaultJavaRuntime,
8488
architecture: lambda.Architecture.ARM_64,
8589
handler: 'example.Handler::handleRequest',
8690
code: lambda.Code.fromAsset('./lambda/otlp-java/target/function.jar'),
@@ -102,7 +106,7 @@ export class Otlp extends cdk.Stack {
102106

103107
const dotnetFunctionName = `${id}-dotnet-lambda`;
104108
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
105-
runtime: lambda.Runtime.DOTNET_8,
109+
runtime: defaultDotnetRuntime,
106110
architecture: lambda.Architecture.ARM_64,
107111
handler: 'Function::Function.Handler::FunctionHandler',
108112
code: lambda.Code.fromAsset('./lambda/otlp-dotnet/bin/function.zip'),

integration-tests/lib/stacks/snapstart.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,26 @@ import {
66
defaultDatadogEnvVariables,
77
defaultDatadogSecretPolicy,
88
getExtensionLayer,
9-
getPython313Layer,
10-
getJava21Layer,
11-
getDotnet8Layer
9+
getDefaultPythonLayer,
10+
getDefaultJavaLayer,
11+
getDefaultDotnetLayer,
12+
defaultPythonRuntime,
13+
defaultJavaRuntime,
14+
defaultDotnetRuntime
1215
} from '../util';
1316

1417
export class Snapstart extends cdk.Stack {
1518
constructor(scope: Construct, id: string, props: cdk.StackProps) {
1619
super(scope, id, props);
1720

1821
const extensionLayer = getExtensionLayer(this);
19-
const python313Layer = getPython313Layer(this);
20-
const java21Layer = getJava21Layer(this);
21-
const dotnet8Layer = getDotnet8Layer(this);
22+
const pythonLayer = getDefaultPythonLayer(this);
23+
const javaLayer = getDefaultJavaLayer(this);
24+
const dotnetLayer = getDefaultDotnetLayer(this);
2225

2326
const javaFunctionName = `${id}-java-lambda`;
2427
const javaFunction = new lambda.Function(this, javaFunctionName, {
25-
runtime: lambda.Runtime.JAVA_21,
28+
runtime: defaultJavaRuntime,
2629
architecture: lambda.Architecture.ARM_64,
2730
handler: 'example.SnapstartHandler::handleRequest',
2831
code: lambda.Code.fromAsset('./lambda/snapstart-java/target/function.jar'),
@@ -40,7 +43,7 @@ export class Snapstart extends cdk.Stack {
4043
});
4144
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
4245
javaFunction.addLayers(extensionLayer);
43-
javaFunction.addLayers(java21Layer);
46+
javaFunction.addLayers(javaLayer);
4447
const javaVersion = javaFunction.currentVersion;
4548
const javaAlias = new lambda.Alias(this, `${javaFunctionName}-snapstart-alias`, {
4649
aliasName: 'snapstart',
@@ -49,7 +52,7 @@ export class Snapstart extends cdk.Stack {
4952

5053
const pythonFunctionName = `${id}-python-lambda`;
5154
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
52-
runtime: lambda.Runtime.PYTHON_3_13,
55+
runtime: defaultPythonRuntime,
5356
architecture: lambda.Architecture.ARM_64,
5457
handler: 'datadog_lambda.handler.handler',
5558
code: lambda.Code.fromAsset('./lambda/snapstart-python'),
@@ -70,7 +73,7 @@ export class Snapstart extends cdk.Stack {
7073
});
7174
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
7275
pythonFunction.addLayers(extensionLayer);
73-
pythonFunction.addLayers(python313Layer);
76+
pythonFunction.addLayers(pythonLayer);
7477
const pythonVersion = pythonFunction.currentVersion;
7578
const pythonAlias = new lambda.Alias(this, `${pythonFunctionName}-snapstart-alias`, {
7679
aliasName: 'snapstart',
@@ -79,7 +82,7 @@ export class Snapstart extends cdk.Stack {
7982

8083
const dotnetFunctionName = `${id}-dotnet-lambda`;
8184
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
82-
runtime: lambda.Runtime.DOTNET_8,
85+
runtime: defaultDotnetRuntime,
8386
architecture: lambda.Architecture.ARM_64,
8487
handler: 'Function::Function.SnapstartHandler::FunctionHandler',
8588
code: lambda.Code.fromAsset('./lambda/snapstart-dotnet/bin/function.zip'),
@@ -96,7 +99,7 @@ export class Snapstart extends cdk.Stack {
9699
});
97100
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
98101
dotnetFunction.addLayers(extensionLayer);
99-
dotnetFunction.addLayers(dotnet8Layer);
102+
dotnetFunction.addLayers(dotnetLayer);
100103
const dotnetVersion = dotnetFunction.currentVersion;
101104
const dotnetAlias = new lambda.Alias(this, `${dotnetFunctionName}-snapstart-alias`, {
102105
aliasName: 'snapstart',

0 commit comments

Comments
 (0)