Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions integration-tests/lib/stacks/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ import {
defaultDatadogEnvVariables,
defaultDatadogSecretPolicy,
getExtensionLayer,
getNode20Layer,
getPython313Layer,
getJava21Layer,
getDotnet8Layer
getDefaultNodeLayer,
getDefaultPythonLayer,
getDefaultJavaLayer,
getDefaultDotnetLayer,
defaultNodeRuntime,
defaultPythonRuntime,
defaultJavaRuntime,
defaultDotnetRuntime
} from '../util';

export class Base extends cdk.Stack {
Expand All @@ -18,15 +22,15 @@ export class Base extends cdk.Stack {

// Get layers once for the entire stack
const extensionLayer = getExtensionLayer(this);
const node20Layer = getNode20Layer(this);
const python313Layer = getPython313Layer(this);
const java21Layer = getJava21Layer(this);
const dotnet8Layer = getDotnet8Layer(this);
const nodeLayer = getDefaultNodeLayer(this);
const pythonLayer = getDefaultPythonLayer(this);
const javaLayer = getDefaultJavaLayer(this);
const dotnetLayer = getDefaultDotnetLayer(this);

// Node.js Lambda
const nodeFunctionName = `${id}-node-lambda`;
const nodeFunction = new lambda.Function(this, nodeFunctionName, {
runtime: lambda.Runtime.NODEJS_20_X,
runtime: defaultNodeRuntime,
architecture: lambda.Architecture.ARM_64,
handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
code: lambda.Code.fromAsset('./lambda/base-node'),
Expand All @@ -43,12 +47,12 @@ export class Base extends cdk.Stack {
});
nodeFunction.addToRolePolicy(defaultDatadogSecretPolicy);
nodeFunction.addLayers(extensionLayer);
nodeFunction.addLayers(node20Layer);
nodeFunction.addLayers(nodeLayer);

// Python Lambda
const pythonFunctionName = `${id}-python-lambda`;
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
runtime: lambda.Runtime.PYTHON_3_13,
runtime: defaultPythonRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'datadog_lambda.handler.handler',
code: lambda.Code.fromAsset('./lambda/base-python'),
Expand All @@ -68,12 +72,12 @@ export class Base extends cdk.Stack {
});
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
pythonFunction.addLayers(extensionLayer);
pythonFunction.addLayers(python313Layer);
pythonFunction.addLayers(pythonLayer);

// Java Lambda
const javaFunctionName = `${id}-java-lambda`;
const javaFunction = new lambda.Function(this, javaFunctionName, {
runtime: lambda.Runtime.JAVA_21,
runtime: defaultJavaRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'example.Handler::handleRequest',
code: lambda.Code.fromAsset('./lambda/base-java/target/function.jar'),
Expand All @@ -90,12 +94,12 @@ export class Base extends cdk.Stack {
});
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
javaFunction.addLayers(extensionLayer);
javaFunction.addLayers(java21Layer);
javaFunction.addLayers(javaLayer);

// .NET Lambda
const dotnetFunctionName = `${id}-dotnet-lambda`;
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
runtime: lambda.Runtime.DOTNET_8,
runtime: defaultDotnetRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'Function::Function.Handler::FunctionHandler',
code: lambda.Code.fromAsset('./lambda/base-dotnet/bin/function.zip'),
Expand All @@ -111,6 +115,6 @@ export class Base extends cdk.Stack {
});
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
dotnetFunction.addLayers(extensionLayer);
dotnetFunction.addLayers(dotnet8Layer);
dotnetFunction.addLayers(dotnetLayer);
}
}
33 changes: 20 additions & 13 deletions integration-tests/lib/stacks/lmi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,29 @@ import {
defaultDatadogEnvVariables,
defaultDatadogSecretPolicy,
getExtensionLayer,
getNode24Layer,
getPython313Layer,
getJava21Layer,
getDotnet8Layer
getDefaultNodeLayer,
getDefaultPythonLayer,
getDefaultJavaLayer,
getDefaultDotnetLayer,
defaultNodeRuntime,
defaultPythonRuntime,
defaultJavaRuntime,
defaultDotnetRuntime
} from '../util';

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

const extensionLayer = getExtensionLayer(this);
const node24Layer = getNode24Layer(this);
const nodeLayer = getDefaultNodeLayer(this);
const pythonLayer = getDefaultPythonLayer(this);
const javaLayer = getDefaultJavaLayer(this);
const dotnetLayer = getDefaultDotnetLayer(this);

const nodeFunctionName = `${id}-node-lambda`;
const nodeFunction = new lambda.Function(this, nodeFunctionName, {
runtime: lambda.Runtime.NODEJS_24_X,
runtime: defaultNodeRuntime,
architecture: lambda.Architecture.ARM_64,
handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
code: lambda.Code.fromAsset('./lambda/lmi-node'),
Expand All @@ -40,15 +47,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
setCapacityProvider(nodeFunction);
nodeFunction.addToRolePolicy(defaultDatadogSecretPolicy);
nodeFunction.addLayers(extensionLayer);
nodeFunction.addLayers(node24Layer);
nodeFunction.addLayers(nodeLayer);
const nodeAlias = new lambda.Alias(this, `${nodeFunctionName}-alias`, {
aliasName: 'lmi',
version: nodeFunction.currentVersion,
});

const pythonFunctionName = `${id}-python-lambda`;
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
runtime: lambda.Runtime.PYTHON_3_13,
runtime: defaultPythonRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'datadog_lambda.handler.handler',
code: lambda.Code.fromAsset('./lambda/lmi-python'),
Expand All @@ -67,15 +74,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
setCapacityProvider(pythonFunction);
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
pythonFunction.addLayers(extensionLayer);
pythonFunction.addLayers(getPython313Layer(this));
pythonFunction.addLayers(pythonLayer);
const pythonAlias = new lambda.Alias(this, `${pythonFunctionName}-alias`, {
aliasName: 'lmi',
version: pythonFunction.currentVersion,
});

const javaFunctionName = `${id}-java-lambda`;
const javaFunction = new lambda.Function(this, javaFunctionName, {
runtime: lambda.Runtime.JAVA_21,
runtime: defaultJavaRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'example.Handler::handleRequest',
code: lambda.Code.fromAsset('./lambda/lmi-java/target/function.jar'),
Expand All @@ -93,15 +100,15 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
setCapacityProvider(javaFunction);
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
javaFunction.addLayers(extensionLayer);
javaFunction.addLayers(getJava21Layer(this));
javaFunction.addLayers(javaLayer);
const javaAlias = new lambda.Alias(this, `${javaFunctionName}-alias`, {
aliasName: 'lmi',
version: javaFunction.currentVersion,
});

const dotnetFunctionName = `${id}-dotnet-lambda`;
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
runtime: lambda.Runtime.DOTNET_8,
runtime: defaultDotnetRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'Function::Function.Handler::FunctionHandler',
code: lambda.Code.fromAsset('./lambda/lmi-dotnet/bin/function.zip'),
Expand All @@ -119,7 +126,7 @@ export class LambdaManagedInstancesStack extends cdk.Stack {
setCapacityProvider(dotnetFunction);
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
dotnetFunction.addLayers(extensionLayer);
dotnetFunction.addLayers(getDotnet8Layer(this));
dotnetFunction.addLayers(dotnetLayer);
const dotnetAlias = new lambda.Alias(this, `${dotnetFunctionName}-alias`, {
aliasName: 'lmi',
version: dotnetFunction.currentVersion,
Expand Down
16 changes: 10 additions & 6 deletions integration-tests/lib/stacks/otlp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ import {
createLogGroup,
defaultDatadogEnvVariables,
defaultDatadogSecretPolicy,
getExtensionLayer
getExtensionLayer,
defaultNodeRuntime,
defaultPythonRuntime,
defaultJavaRuntime,
defaultDotnetRuntime
} from '../util';

export class Otlp extends cdk.Stack {
Expand All @@ -16,7 +20,7 @@ export class Otlp extends cdk.Stack {

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

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

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

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

const dotnetFunctionName = `${id}-dotnet-lambda`;
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
runtime: lambda.Runtime.DOTNET_8,
runtime: defaultDotnetRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'Function::Function.Handler::FunctionHandler',
code: lambda.Code.fromAsset('./lambda/otlp-dotnet/bin/function.zip'),
Expand Down
27 changes: 15 additions & 12 deletions integration-tests/lib/stacks/snapstart.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,26 @@ import {
defaultDatadogEnvVariables,
defaultDatadogSecretPolicy,
getExtensionLayer,
getPython313Layer,
getJava21Layer,
getDotnet8Layer
getDefaultPythonLayer,
getDefaultJavaLayer,
getDefaultDotnetLayer,
defaultPythonRuntime,
defaultJavaRuntime,
defaultDotnetRuntime
} from '../util';

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

const extensionLayer = getExtensionLayer(this);
const python313Layer = getPython313Layer(this);
const java21Layer = getJava21Layer(this);
const dotnet8Layer = getDotnet8Layer(this);
const pythonLayer = getDefaultPythonLayer(this);
const javaLayer = getDefaultJavaLayer(this);
const dotnetLayer = getDefaultDotnetLayer(this);

const javaFunctionName = `${id}-java-lambda`;
const javaFunction = new lambda.Function(this, javaFunctionName, {
runtime: lambda.Runtime.JAVA_21,
runtime: defaultJavaRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'example.SnapstartHandler::handleRequest',
code: lambda.Code.fromAsset('./lambda/snapstart-java/target/function.jar'),
Expand All @@ -40,7 +43,7 @@ export class Snapstart extends cdk.Stack {
});
javaFunction.addToRolePolicy(defaultDatadogSecretPolicy);
javaFunction.addLayers(extensionLayer);
javaFunction.addLayers(java21Layer);
javaFunction.addLayers(javaLayer);
const javaVersion = javaFunction.currentVersion;
const javaAlias = new lambda.Alias(this, `${javaFunctionName}-snapstart-alias`, {
aliasName: 'snapstart',
Expand All @@ -49,7 +52,7 @@ export class Snapstart extends cdk.Stack {

const pythonFunctionName = `${id}-python-lambda`;
const pythonFunction = new lambda.Function(this, pythonFunctionName, {
runtime: lambda.Runtime.PYTHON_3_13,
runtime: defaultPythonRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'datadog_lambda.handler.handler',
code: lambda.Code.fromAsset('./lambda/snapstart-python'),
Expand All @@ -70,7 +73,7 @@ export class Snapstart extends cdk.Stack {
});
pythonFunction.addToRolePolicy(defaultDatadogSecretPolicy);
pythonFunction.addLayers(extensionLayer);
pythonFunction.addLayers(python313Layer);
pythonFunction.addLayers(pythonLayer);
const pythonVersion = pythonFunction.currentVersion;
const pythonAlias = new lambda.Alias(this, `${pythonFunctionName}-snapstart-alias`, {
aliasName: 'snapstart',
Expand All @@ -79,7 +82,7 @@ export class Snapstart extends cdk.Stack {

const dotnetFunctionName = `${id}-dotnet-lambda`;
const dotnetFunction = new lambda.Function(this, dotnetFunctionName, {
runtime: lambda.Runtime.DOTNET_8,
runtime: defaultDotnetRuntime,
architecture: lambda.Architecture.ARM_64,
handler: 'Function::Function.SnapstartHandler::FunctionHandler',
code: lambda.Code.fromAsset('./lambda/snapstart-dotnet/bin/function.zip'),
Expand All @@ -96,7 +99,7 @@ export class Snapstart extends cdk.Stack {
});
dotnetFunction.addToRolePolicy(defaultDatadogSecretPolicy);
dotnetFunction.addLayers(extensionLayer);
dotnetFunction.addLayers(dotnet8Layer);
dotnetFunction.addLayers(dotnetLayer);
const dotnetVersion = dotnetFunction.currentVersion;
const dotnetAlias = new lambda.Alias(this, `${dotnetFunctionName}-snapstart-alias`, {
aliasName: 'snapstart',
Expand Down
Loading
Loading