diff --git a/src/datadog-lambda.ts b/src/datadog-lambda.ts index 2f453340..03cc33c1 100644 --- a/src/datadog-lambda.ts +++ b/src/datadog-lambda.ts @@ -127,11 +127,11 @@ export class DatadogLambda extends Construct { } else { log.debug("Forwarder ARN not provided, no log group subscriptions will be added"); } - } - addCdkConstructVersionTag(extractedLambdaFunctions); + addCdkConstructVersionTag(lambdaFunction); + applyEnvVariables(lambdaFunction, baseProps); + } - applyEnvVariables(extractedLambdaFunctions, baseProps); setDDEnvVariables(extractedLambdaFunctions, this.props); setTagsForFunctions(extractedLambdaFunctions, this.props); @@ -170,12 +170,10 @@ export class DatadogLambda extends Construct { } } -export function addCdkConstructVersionTag(lambdaFunctions: lambda.Function[]): void { +export function addCdkConstructVersionTag(lambdaFunction: lambda.Function): void { log.debug(`Adding CDK Construct version tag: ${versionJson.version}`); - lambdaFunctions.forEach((functionName) => { - Tags.of(functionName).add(TagKeys.CDK, `v${versionJson.version}`, { - includeResourceTypes: ["AWS::Lambda::Function"], - }); + Tags.of(lambdaFunction).add(TagKeys.CDK, `v${versionJson.version}`, { + includeResourceTypes: ["AWS::Lambda::Function"], }); } diff --git a/src/env.ts b/src/env.ts index a8fe68e9..71da5324 100644 --- a/src/env.ts +++ b/src/env.ts @@ -98,28 +98,26 @@ function filterSensitiveInfoFromRepository(repositoryUrl: string): string { } } -export function applyEnvVariables(lambdas: lambda.Function[], baseProps: DatadogLambdaStrictProps): void { +export function applyEnvVariables(lam: lambda.Function, baseProps: DatadogLambdaStrictProps): void { log.debug(`Setting environment variables...`); - lambdas.forEach((lam) => { - lam.addEnvironment(ENABLE_DD_TRACING_ENV_VAR, baseProps.enableDatadogTracing.toString().toLowerCase()); - lam.addEnvironment(ENABLE_DD_ASM_ENV_VAR, baseProps.enableDatadogASM.toString().toLowerCase()); - if (baseProps.enableDatadogASM) { - lam.addEnvironment(AWS_LAMBDA_EXEC_WRAPPER_KEY, AWS_LAMBDA_EXEC_WRAPPER_VAL); - } + lam.addEnvironment(ENABLE_DD_TRACING_ENV_VAR, baseProps.enableDatadogTracing.toString().toLowerCase()); + lam.addEnvironment(ENABLE_DD_ASM_ENV_VAR, baseProps.enableDatadogASM.toString().toLowerCase()); + if (baseProps.enableDatadogASM) { + lam.addEnvironment(AWS_LAMBDA_EXEC_WRAPPER_KEY, AWS_LAMBDA_EXEC_WRAPPER_VAL); + } - lam.addEnvironment(ENABLE_XRAY_TRACE_MERGING_ENV_VAR, baseProps.enableMergeXrayTraces.toString().toLowerCase()); - // Check for extensionLayerVersion and set INJECT_LOG_CONTEXT_ENV_VAR accordingly - if (baseProps.extensionLayerVersion) { - lam.addEnvironment(INJECT_LOG_CONTEXT_ENV_VAR, "false"); - } else { - lam.addEnvironment(INJECT_LOG_CONTEXT_ENV_VAR, baseProps.injectLogContext.toString().toLowerCase()); - } - lam.addEnvironment(ENABLE_DD_LOGS_ENV_VAR, baseProps.enableDatadogLogs.toString().toLowerCase()); - lam.addEnvironment(CAPTURE_LAMBDA_PAYLOAD_ENV_VAR, baseProps.captureLambdaPayload.toString().toLowerCase()); - if (baseProps.logLevel) { - lam.addEnvironment(LOG_LEVEL_ENV_VAR, baseProps.logLevel); - } - }); + lam.addEnvironment(ENABLE_XRAY_TRACE_MERGING_ENV_VAR, baseProps.enableMergeXrayTraces.toString().toLowerCase()); + // Check for extensionLayerVersion and set INJECT_LOG_CONTEXT_ENV_VAR accordingly + if (baseProps.extensionLayerVersion) { + lam.addEnvironment(INJECT_LOG_CONTEXT_ENV_VAR, "false"); + } else { + lam.addEnvironment(INJECT_LOG_CONTEXT_ENV_VAR, baseProps.injectLogContext.toString().toLowerCase()); + } + lam.addEnvironment(ENABLE_DD_LOGS_ENV_VAR, baseProps.enableDatadogLogs.toString().toLowerCase()); + lam.addEnvironment(CAPTURE_LAMBDA_PAYLOAD_ENV_VAR, baseProps.captureLambdaPayload.toString().toLowerCase()); + if (baseProps.logLevel) { + lam.addEnvironment(LOG_LEVEL_ENV_VAR, baseProps.logLevel); + } } export function setDDEnvVariables(lambdas: lambda.Function[], props: DatadogLambdaProps): void { diff --git a/test/datadog-lambda.spec.ts b/test/datadog-lambda.spec.ts index 43ea949c..426cadb3 100644 --- a/test/datadog-lambda.spec.ts +++ b/test/datadog-lambda.spec.ts @@ -267,7 +267,8 @@ describe("addCdkConstructVersionTag", () => { code: lambda.Code.fromInline("test"), handler: "hello.handler", }); - addCdkConstructVersionTag([hello1, hello2]); + addCdkConstructVersionTag(hello1); + addCdkConstructVersionTag(hello2); Template.fromStack(stack).hasResourceProperties("AWS::Lambda::Function", { Runtime: "nodejs16.x", Tags: [