From 6eec48934f46a57189634961150dc5dabe58b873 Mon Sep 17 00:00:00 2001 From: Yiming Luo Date: Mon, 30 Sep 2024 16:37:32 -0400 Subject: [PATCH] feat: Support both Lambda APIs in the example TypeScript stack --- examples/typescript-stack/bin/index.ts | 2 ++ .../cdk-typescript-lambda-old-api-stack.ts | 29 +++++++++++++++++++ .../lib/cdk-typescript-stack-base.ts | 2 +- .../lib/cdk-typescript-stack.ts | 6 ++-- 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 examples/typescript-stack/lib/cdk-typescript-lambda-old-api-stack.ts diff --git a/examples/typescript-stack/bin/index.ts b/examples/typescript-stack/bin/index.ts index 0124adb2..3eb20984 100644 --- a/examples/typescript-stack/bin/index.ts +++ b/examples/typescript-stack/bin/index.ts @@ -1,7 +1,9 @@ #!/usr/bin/env node import * as cdk from "aws-cdk-lib"; import { CdkTypeScriptStack } from "../lib/cdk-typescript-stack"; +import { CdkTypeScriptLambdaOldApiStack } from "../lib/cdk-typescript-lambda-old-api-stack"; const app = new cdk.App(); new CdkTypeScriptStack(app, "CdkTypeScriptStack", {}); +new CdkTypeScriptLambdaOldApiStack(app, "CdkTypeScriptLambdaOldApiStack", {}); app.synth(); diff --git a/examples/typescript-stack/lib/cdk-typescript-lambda-old-api-stack.ts b/examples/typescript-stack/lib/cdk-typescript-lambda-old-api-stack.ts new file mode 100644 index 00000000..a6c3c82e --- /dev/null +++ b/examples/typescript-stack/lib/cdk-typescript-lambda-old-api-stack.ts @@ -0,0 +1,29 @@ +import { StackProps } from "aws-cdk-lib"; +import { Construct } from "constructs"; +import { Datadog, DatadogProps } from "datadog-cdk-constructs-v2"; +import { CdkTypeScriptStackBase } from "./cdk-typescript-stack-base"; + +export class CdkTypeScriptLambdaOldApiStack extends CdkTypeScriptStackBase { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + console.log("Instrumenting Lambda Functions in TypeScript stack using the old Datadog Lambda API"); + + const datadogProps: DatadogProps = { + dotnetLayerVersion: 15, + nodeLayerVersion: 108, + pythonLayerVersion: 89, + extensionLayerVersion: 55, + addLayers: true, + apiKey: process.env.DD_API_KEY, + enableDatadogTracing: true, + enableDatadogASM: true, + flushMetricsToLogs: true, + site: "datadoghq.com", + }; + + const datadog = new Datadog(this, "Datadog", datadogProps); + + datadog.addLambdaFunctions(this.lambdaFunctions); + } +} diff --git a/examples/typescript-stack/lib/cdk-typescript-stack-base.ts b/examples/typescript-stack/lib/cdk-typescript-stack-base.ts index 3e6a4407..0ba9e609 100644 --- a/examples/typescript-stack/lib/cdk-typescript-stack-base.ts +++ b/examples/typescript-stack/lib/cdk-typescript-stack-base.ts @@ -6,7 +6,7 @@ import { Function } from "aws-cdk-lib/aws-lambda"; import { HttpLambdaIntegration } from "aws-cdk-lib/aws-apigatewayv2-integrations"; import { Construct } from "constructs"; -export class CdkTypeScriptStackBase extends Stack { +export abstract class CdkTypeScriptStackBase extends Stack { protected lambdaFunctions: lambda.Function[]; constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); diff --git a/examples/typescript-stack/lib/cdk-typescript-stack.ts b/examples/typescript-stack/lib/cdk-typescript-stack.ts index 3c220272..9c142b2a 100644 --- a/examples/typescript-stack/lib/cdk-typescript-stack.ts +++ b/examples/typescript-stack/lib/cdk-typescript-stack.ts @@ -1,6 +1,6 @@ import { StackProps } from "aws-cdk-lib"; import { Construct } from "constructs"; -import { Datadog, DatadogProps } from "datadog-cdk-constructs-v2"; +import { DatadogLambda, DatadogLambdaProps } from "datadog-cdk-constructs-v2"; import { CdkTypeScriptStackBase } from "./cdk-typescript-stack-base"; export class CdkTypeScriptStack extends CdkTypeScriptStackBase { @@ -9,7 +9,7 @@ export class CdkTypeScriptStack extends CdkTypeScriptStackBase { console.log("Instrumenting Lambda Functions in TypeScript stack with Datadog"); - const datadogProps: DatadogProps = { + const datadogLambdaProps: DatadogLambdaProps = { dotnetLayerVersion: 15, nodeLayerVersion: 108, pythonLayerVersion: 89, @@ -22,7 +22,7 @@ export class CdkTypeScriptStack extends CdkTypeScriptStackBase { site: "datadoghq.com", }; - const datadog = new Datadog(this, "Datadog", datadogProps); + const datadog = new DatadogLambda(this, "Datadog", datadogLambdaProps); datadog.addLambdaFunctions(this.lambdaFunctions); }