@jaypie/constructs 1.1.42 → 1.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/JaypieLambda.d.ts +3 -2
- package/dist/cjs/JaypieQueuedLambda.d.ts +1 -1
- package/dist/cjs/helpers/{addDatadogLayer.d.ts → addDatadogLayers.d.ts} +1 -1
- package/dist/cjs/helpers/index.d.ts +3 -2
- package/dist/cjs/helpers/resolveDatadogLayers.d.ts +7 -0
- package/dist/cjs/helpers/resolveParamsAndSecrets.d.ts +10 -0
- package/dist/cjs/index.cjs +211 -194
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/JaypieLambda.d.ts +3 -2
- package/dist/esm/JaypieQueuedLambda.d.ts +1 -1
- package/dist/esm/helpers/{addDatadogLayer.d.ts → addDatadogLayers.d.ts} +1 -1
- package/dist/esm/helpers/index.d.ts +3 -2
- package/dist/esm/helpers/resolveDatadogLayers.d.ts +7 -0
- package/dist/esm/helpers/resolveParamsAndSecrets.d.ts +10 -0
- package/dist/esm/index.js +99 -83
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/cjs/helpers/addParamsAndSecrets.d.ts +0 -11
- package/dist/esm/helpers/addParamsAndSecrets.d.ts +0 -11
|
@@ -38,8 +38,8 @@ export interface JaypieLambdaProps {
|
|
|
38
38
|
paramsAndSecretsOptions?: {
|
|
39
39
|
cacheSize?: number;
|
|
40
40
|
logLevel?: lambda.ParamsAndSecretsLogLevel;
|
|
41
|
-
parameterStoreTtl?:
|
|
42
|
-
secretsManagerTtl?:
|
|
41
|
+
parameterStoreTtl?: Duration;
|
|
42
|
+
secretsManagerTtl?: Duration;
|
|
43
43
|
};
|
|
44
44
|
profiling?: boolean;
|
|
45
45
|
profilingGroup?: import("aws-cdk-lib/aws-codeguruprofiler").IProfilingGroup;
|
|
@@ -97,4 +97,5 @@ export declare class JaypieLambda extends Construct implements lambda.IFunction
|
|
|
97
97
|
};
|
|
98
98
|
get stack(): Stack;
|
|
99
99
|
applyRemovalPolicy(policy: RemovalPolicy): void;
|
|
100
|
+
addEnvironment(key: string, value: string): void;
|
|
100
101
|
}
|
|
@@ -17,7 +17,6 @@ export declare class JaypieQueuedLambda extends Construct implements lambda.IFun
|
|
|
17
17
|
constructor(scope: Construct, id: string, props: JaypieQueuedLambdaProps);
|
|
18
18
|
get queue(): sqs.Queue;
|
|
19
19
|
get lambda(): lambda.Function;
|
|
20
|
-
get code(): lambda.Code;
|
|
21
20
|
get functionArn(): string;
|
|
22
21
|
get functionName(): string;
|
|
23
22
|
get grantPrincipal(): import("aws-cdk-lib/aws-iam").IPrincipal;
|
|
@@ -69,4 +68,5 @@ export declare class JaypieQueuedLambda extends Construct implements lambda.IFun
|
|
|
69
68
|
metricNumberOfMessagesReceived(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
70
69
|
metricNumberOfMessagesSent(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
71
70
|
metricSentMessageSize(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
71
|
+
addEnvironment(key: string, value: string): void;
|
|
72
72
|
}
|
|
@@ -2,4 +2,4 @@ import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
|
2
2
|
export interface AddDatadogLayerOptions {
|
|
3
3
|
datadogApiKeyArn?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function addDatadogLayers(lambdaFunction: lambda.Function, options?: AddDatadogLayerOptions): boolean;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { addParamsAndSecrets } from "./addParamsAndSecrets";
|
|
1
|
+
export { addDatadogLayers } from "./addDatadogLayers";
|
|
3
2
|
export { constructEnvName } from "./constructEnvName";
|
|
4
3
|
export { constructStackName } from "./constructStackName";
|
|
5
4
|
export { constructTagger } from "./constructTagger";
|
|
6
5
|
export { envHostname } from "./envHostname";
|
|
7
6
|
export { isEnv, isProductionEnv, isSandboxEnv } from "./isEnv";
|
|
8
7
|
export { jaypieLambdaEnv } from "./jaypieLambdaEnv";
|
|
8
|
+
export { resolveDatadogLayers } from "./resolveDatadogLayers";
|
|
9
9
|
export { resolveHostedZone } from "./resolveHostedZone";
|
|
10
|
+
export { resolveParamsAndSecrets } from "./resolveParamsAndSecrets";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export interface ResolveDatadogLayerOptions {
|
|
4
|
+
datadogApiKeyArn?: string;
|
|
5
|
+
uniqueId?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveDatadogLayers(scope: Construct, options?: ResolveDatadogLayerOptions): lambda.ILayerVersion[] | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
export interface ResolveParamsAndSecretsOptions {
|
|
4
|
+
cacheSize?: number;
|
|
5
|
+
logLevel?: lambda.ParamsAndSecretsLogLevel;
|
|
6
|
+
parameterStoreTtl?: Duration;
|
|
7
|
+
secretsManagerTtl?: Duration;
|
|
8
|
+
}
|
|
9
|
+
export declare const resolveParamsAndSecrets: (paramsAndSecretsOptions?: lambda.ParamsAndSecretsLayerVersion | boolean | ResolveParamsAndSecretsOptions) => lambda.ParamsAndSecretsLayerVersion | undefined;
|
|
10
|
+
export default resolveParamsAndSecrets;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { Tags, Stack, Duration, RemovalPolicy, Fn, CfnOutput, SecretValue } from 'aws-cdk-lib';
|
|
4
4
|
import * as acm from 'aws-cdk-lib/aws-certificatemanager';
|
|
5
5
|
import * as apiGateway from 'aws-cdk-lib/aws-apigateway';
|
|
6
6
|
import * as route53 from 'aws-cdk-lib/aws-route53';
|
|
7
7
|
import { HostedZone } from 'aws-cdk-lib/aws-route53';
|
|
8
8
|
import * as route53Targets from 'aws-cdk-lib/aws-route53-targets';
|
|
9
9
|
import { CDK as CDK$2, ConfigurationError, mergeDomain, isValidSubdomain, isValidHostname } from '@jaypie/cdk';
|
|
10
|
-
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
11
10
|
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
11
|
+
import { DatadogLambda } from 'datadog-cdk-constructs-v2';
|
|
12
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
12
13
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
13
14
|
import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
|
|
14
15
|
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
@@ -19,23 +20,14 @@ import * as sso from 'aws-cdk-lib/aws-sso';
|
|
|
19
20
|
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
20
21
|
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
21
22
|
|
|
22
|
-
function
|
|
23
|
-
const
|
|
24
|
-
// Resolve the Datadog API key ARN from multiple sources
|
|
23
|
+
function addDatadogLayers(lambdaFunction, options = {}) {
|
|
24
|
+
const datadogApiKeyArn = options?.datadogApiKeyArn;
|
|
25
25
|
const resolvedDatadogApiKeyArn = datadogApiKeyArn ||
|
|
26
26
|
process.env.DATADOG_API_KEY_ARN ||
|
|
27
27
|
process.env.CDK_ENV_DATADOG_API_KEY_ARN;
|
|
28
|
-
// Return false if no API key is found
|
|
29
28
|
if (!resolvedDatadogApiKeyArn) {
|
|
30
29
|
return false;
|
|
31
30
|
}
|
|
32
|
-
const stack = Stack.of(lambdaFunction);
|
|
33
|
-
// Create Datadog Node.js layer
|
|
34
|
-
const datadogNodeLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `DatadogNodeLayer-${lambdaFunction.node.id}`, `arn:aws:lambda:${stack.region}:464622532012:layer:Datadog-Node20-x:${CDK$2.DATADOG.LAYER.NODE}`);
|
|
35
|
-
// Create Datadog Extension layer
|
|
36
|
-
const datadogExtensionLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `DatadogExtensionLayer-${lambdaFunction.node.id}`, `arn:aws:lambda:${stack.region}:464622532012:layer:Datadog-Extension:${CDK$2.DATADOG.LAYER.EXTENSION}`);
|
|
37
|
-
// Add layers to the lambda function
|
|
38
|
-
lambdaFunction.addLayers(datadogNodeLayer, datadogExtensionLayer);
|
|
39
31
|
// Define Datadog environment variables
|
|
40
32
|
const datadogEnvVars = {
|
|
41
33
|
DD_API_KEY_SECRET_ARN: resolvedDatadogApiKeyArn,
|
|
@@ -50,68 +42,21 @@ function addDatadogLayer(lambdaFunction, options = {}) {
|
|
|
50
42
|
};
|
|
51
43
|
// Add environment variables only if they don't already exist
|
|
52
44
|
Object.entries(datadogEnvVars).forEach(([key, value]) => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
lambdaFunction.addEnvironment(key, value);
|
|
46
|
+
});
|
|
47
|
+
const datadogApiKeySecret = secretsmanager.Secret.fromSecretNameV2(lambdaFunction.stack, "DatadogApiKey", resolvedDatadogApiKeyArn);
|
|
48
|
+
const datadogLambda = new DatadogLambda(lambdaFunction.stack, "DatadogLambda", {
|
|
49
|
+
apiKeySecret: datadogApiKeySecret, // apiKeySecret auto-grants secret access to the added lambdas
|
|
50
|
+
nodeLayerVersion: CDK$2.DATADOG.LAYER.NODE,
|
|
51
|
+
extensionLayerVersion: CDK$2.DATADOG.LAYER.EXTENSION,
|
|
52
|
+
env: process.env.PROJECT_ENV,
|
|
53
|
+
service: process.env.PROJECT_SERVICE,
|
|
54
|
+
version: process.env.PROJECT_VERSION,
|
|
56
55
|
});
|
|
57
|
-
|
|
58
|
-
const datadogApiKey = secretsmanager.Secret.fromSecretCompleteArn(stack, `DatadogApiKeyGrant-${lambdaFunction.node.id}`, resolvedDatadogApiKeyArn);
|
|
59
|
-
datadogApiKey.grantRead(lambdaFunction);
|
|
56
|
+
datadogLambda.addLambdaFunctions([lambdaFunction]);
|
|
60
57
|
return true;
|
|
61
58
|
}
|
|
62
59
|
|
|
63
|
-
function addParamsAndSecrets(lambdaFunction, options = {}) {
|
|
64
|
-
const { paramsAndSecrets, paramsAndSecretsOptions } = options;
|
|
65
|
-
// Return false if explicitly disabled
|
|
66
|
-
if (paramsAndSecrets === false) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
const stack = Stack.of(lambdaFunction);
|
|
70
|
-
let resolvedLayer = undefined;
|
|
71
|
-
if (paramsAndSecrets instanceof lambda.ParamsAndSecretsLayerVersion) {
|
|
72
|
-
// For custom ParamsAndSecretsLayerVersion, we need to extract the ARN
|
|
73
|
-
// This is a workaround since ParamsAndSecretsLayerVersion doesn't implement ILayerVersion
|
|
74
|
-
const layerArn = `arn:aws:lambda:${stack.region}:017000801446:layer:AWSLambdaParametersAndSecrets:${lambda.ParamsAndSecretsVersions.V1_0_103}`;
|
|
75
|
-
resolvedLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `ParamsAndSecretsLayer-${lambdaFunction.node.id}`, layerArn);
|
|
76
|
-
// Set environment variables for configuration
|
|
77
|
-
if (paramsAndSecretsOptions?.cacheSize) {
|
|
78
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE", paramsAndSecretsOptions.cacheSize.toString());
|
|
79
|
-
}
|
|
80
|
-
if (paramsAndSecretsOptions?.logLevel) {
|
|
81
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL", paramsAndSecretsOptions.logLevel);
|
|
82
|
-
}
|
|
83
|
-
if (paramsAndSecretsOptions?.parameterStoreTtl) {
|
|
84
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_PARAMETER_STORE_TTL", paramsAndSecretsOptions.parameterStoreTtl.toString());
|
|
85
|
-
}
|
|
86
|
-
if (paramsAndSecretsOptions?.secretsManagerTtl) {
|
|
87
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_SECRETS_MANAGER_TTL", paramsAndSecretsOptions.secretsManagerTtl.toString());
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Create default ParamsAndSecrets layer using LayerVersion.fromLayerVersionArn
|
|
92
|
-
const layerArn = `arn:aws:lambda:${stack.region}:017000801446:layer:AWSLambdaParametersAndSecrets:${lambda.ParamsAndSecretsVersions.V1_0_103}`;
|
|
93
|
-
resolvedLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `ParamsAndSecretsLayer-${lambdaFunction.node.id}`, layerArn);
|
|
94
|
-
// Set default environment variables
|
|
95
|
-
if (paramsAndSecretsOptions?.cacheSize) {
|
|
96
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE", paramsAndSecretsOptions.cacheSize.toString());
|
|
97
|
-
}
|
|
98
|
-
const logLevel = paramsAndSecretsOptions?.logLevel || lambda.ParamsAndSecretsLogLevel.WARN;
|
|
99
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL", logLevel);
|
|
100
|
-
if (paramsAndSecretsOptions?.parameterStoreTtl) {
|
|
101
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_PARAMETER_STORE_TTL", paramsAndSecretsOptions.parameterStoreTtl.toString());
|
|
102
|
-
}
|
|
103
|
-
if (paramsAndSecretsOptions?.secretsManagerTtl) {
|
|
104
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_SECRETS_MANAGER_TTL", paramsAndSecretsOptions.secretsManagerTtl.toString());
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Add the layer to the lambda function
|
|
108
|
-
if (resolvedLayer) {
|
|
109
|
-
lambdaFunction.addLayers(resolvedLayer);
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
60
|
function constructEnvName(name, opts) {
|
|
116
61
|
const env = opts?.env ?? process.env.PROJECT_ENV ?? "build";
|
|
117
62
|
const key = opts?.key ?? process.env.PROJECT_KEY ?? "project";
|
|
@@ -270,6 +215,25 @@ function jaypieLambdaEnv(options = {}) {
|
|
|
270
215
|
return environment;
|
|
271
216
|
}
|
|
272
217
|
|
|
218
|
+
function resolveDatadogLayers(scope, options = {}) {
|
|
219
|
+
const { datadogApiKeyArn, uniqueId } = options;
|
|
220
|
+
let resolvedRegion = Stack.of(scope).region || "us-east-1";
|
|
221
|
+
// Resolve the Datadog API key ARN from multiple sources
|
|
222
|
+
const resolvedDatadogApiKeyArn = datadogApiKeyArn ||
|
|
223
|
+
process.env.DATADOG_API_KEY_ARN ||
|
|
224
|
+
process.env.CDK_ENV_DATADOG_API_KEY_ARN;
|
|
225
|
+
// Return null if no API key is found
|
|
226
|
+
if (!resolvedDatadogApiKeyArn) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
const layerIdSuffix = uniqueId || process.env.PROJECT_NONCE || Date.now().toString();
|
|
230
|
+
// Create Datadog Node.js layer
|
|
231
|
+
const datadogNodeLayer = lambda.LayerVersion.fromLayerVersionArn(scope, `DatadogNodeLayer-${layerIdSuffix}`, `arn:aws:lambda:${resolvedRegion}:464622532012:layer:Datadog-Node20-x:${CDK$2.DATADOG.LAYER.NODE}`);
|
|
232
|
+
// Create Datadog Extension layer
|
|
233
|
+
const datadogExtensionLayer = lambda.LayerVersion.fromLayerVersionArn(scope, `DatadogExtensionLayer-${layerIdSuffix}`, `arn:aws:lambda:${resolvedRegion}:464622532012:layer:Datadog-Extension:${CDK$2.DATADOG.LAYER.EXTENSION}`);
|
|
234
|
+
return [datadogNodeLayer, datadogExtensionLayer];
|
|
235
|
+
}
|
|
236
|
+
|
|
273
237
|
function resolveHostedZone(scope, { name = "HostedZone", zone = process.env.CDK_ENV_HOSTED_ZONE, } = {}) {
|
|
274
238
|
if (!zone) {
|
|
275
239
|
throw new ConfigurationError("No `zone` provided. Set CDK_ENV_HOSTED_ZONE to use environment zone");
|
|
@@ -282,6 +246,30 @@ function resolveHostedZone(scope, { name = "HostedZone", zone = process.env.CDK_
|
|
|
282
246
|
return zone;
|
|
283
247
|
}
|
|
284
248
|
|
|
249
|
+
const resolveParamsAndSecrets = (paramsAndSecretsOptions) => {
|
|
250
|
+
if (paramsAndSecretsOptions === false) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
let resolvedParamsAndSecrets;
|
|
254
|
+
if (paramsAndSecretsOptions instanceof lambda.ParamsAndSecretsLayerVersion) {
|
|
255
|
+
resolvedParamsAndSecrets = paramsAndSecretsOptions;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
if (paramsAndSecretsOptions === true ||
|
|
259
|
+
paramsAndSecretsOptions === undefined) {
|
|
260
|
+
paramsAndSecretsOptions = {};
|
|
261
|
+
}
|
|
262
|
+
resolvedParamsAndSecrets = lambda.ParamsAndSecretsLayerVersion.fromVersion(lambda.ParamsAndSecretsVersions.V1_0_103, {
|
|
263
|
+
cacheSize: paramsAndSecretsOptions?.cacheSize,
|
|
264
|
+
logLevel: paramsAndSecretsOptions?.logLevel ||
|
|
265
|
+
lambda.ParamsAndSecretsLogLevel.WARN,
|
|
266
|
+
parameterStoreTtl: paramsAndSecretsOptions?.parameterStoreTtl,
|
|
267
|
+
secretsManagerTtl: paramsAndSecretsOptions?.secretsManagerTtl,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
return resolvedParamsAndSecrets;
|
|
271
|
+
};
|
|
272
|
+
|
|
285
273
|
class JaypieApiGateway extends Construct {
|
|
286
274
|
constructor(scope, id, props) {
|
|
287
275
|
super(scope, id);
|
|
@@ -479,6 +467,10 @@ class JaypieLambda extends Construct {
|
|
|
479
467
|
}
|
|
480
468
|
return acc;
|
|
481
469
|
}, {});
|
|
470
|
+
// Add ParamsAndSecrets layer if configured
|
|
471
|
+
const resolvedParamsAndSecrets = paramsAndSecrets
|
|
472
|
+
? resolveParamsAndSecrets(paramsAndSecretsOptions)
|
|
473
|
+
: undefined;
|
|
482
474
|
// Create Lambda Function
|
|
483
475
|
this._lambda = new lambda.Function(this, "Function", {
|
|
484
476
|
allowAllOutbound,
|
|
@@ -506,6 +498,7 @@ class JaypieLambda extends Construct {
|
|
|
506
498
|
logRetentionRetryOptions,
|
|
507
499
|
maxEventAge,
|
|
508
500
|
memorySize,
|
|
501
|
+
paramsAndSecrets: resolvedParamsAndSecrets,
|
|
509
502
|
profiling,
|
|
510
503
|
profilingGroup,
|
|
511
504
|
reservedConcurrentExecutions,
|
|
@@ -526,13 +519,7 @@ class JaypieLambda extends Construct {
|
|
|
526
519
|
}
|
|
527
520
|
: undefined,
|
|
528
521
|
});
|
|
529
|
-
|
|
530
|
-
addParamsAndSecrets(this._lambda, {
|
|
531
|
-
paramsAndSecrets,
|
|
532
|
-
paramsAndSecretsOptions,
|
|
533
|
-
});
|
|
534
|
-
// Add Datadog layers and environment variables if configured
|
|
535
|
-
addDatadogLayer(this._lambda, { datadogApiKeyArn });
|
|
522
|
+
addDatadogLayers(this._lambda, { datadogApiKeyArn });
|
|
536
523
|
// Grant secret read permissions
|
|
537
524
|
Object.values(envSecrets).forEach((secret) => {
|
|
538
525
|
secret.grantRead(this._lambda);
|
|
@@ -665,12 +652,15 @@ class JaypieLambda extends Construct {
|
|
|
665
652
|
applyRemovalPolicy(policy) {
|
|
666
653
|
this._reference.applyRemovalPolicy(policy);
|
|
667
654
|
}
|
|
655
|
+
addEnvironment(key, value) {
|
|
656
|
+
this._lambda.addEnvironment(key, value);
|
|
657
|
+
}
|
|
668
658
|
}
|
|
669
659
|
|
|
670
660
|
class JaypieQueuedLambda extends Construct {
|
|
671
661
|
constructor(scope, id, props) {
|
|
672
662
|
super(scope, id);
|
|
673
|
-
const { batchSize = 1, code, environment = {}, envSecrets = {}, fifo = true, handler = "index.handler", layers = [], logRetention = CDK$2.LAMBDA.LOG_RETENTION, memorySize = CDK$2.LAMBDA.MEMORY_SIZE, paramsAndSecrets, reservedConcurrentExecutions, roleTag, runtime = lambda.Runtime.NODEJS_22_X, secrets = [], timeout = Duration.seconds(CDK$2.DURATION.LAMBDA_WORKER), vendorTag, visibilityTimeout = Duration.seconds(CDK$2.DURATION.LAMBDA_WORKER), } = props;
|
|
663
|
+
const { allowAllOutbound, allowPublicSubnet, architecture, batchSize = 1, code, codeSigningConfig, datadogApiKeyArn, deadLetterQueue, deadLetterQueueEnabled, deadLetterTopic, description, environment = {}, environmentEncryption, envSecrets = {}, ephemeralStorageSize, fifo = true, filesystem, handler = "index.handler", initialPolicy, layers = [], logRetention = CDK$2.LAMBDA.LOG_RETENTION, logRetentionRole, logRetentionRetryOptions, maxEventAge, memorySize = CDK$2.LAMBDA.MEMORY_SIZE, paramsAndSecrets, paramsAndSecretsOptions, profiling, profilingGroup, provisionedConcurrentExecutions, reservedConcurrentExecutions, retryAttempts, roleTag, runtime = lambda.Runtime.NODEJS_22_X, runtimeManagementMode, secrets = [], securityGroups, timeout = Duration.seconds(CDK$2.DURATION.LAMBDA_WORKER), tracing, vendorTag, visibilityTimeout = Duration.seconds(CDK$2.DURATION.LAMBDA_WORKER), vpc, vpcSubnets, } = props;
|
|
674
664
|
// Create SQS Queue
|
|
675
665
|
this._queue = new sqs.Queue(this, "Queue", {
|
|
676
666
|
fifo,
|
|
@@ -686,23 +676,49 @@ class JaypieQueuedLambda extends Construct {
|
|
|
686
676
|
}
|
|
687
677
|
// Create Lambda with JaypieLambda
|
|
688
678
|
this._lambdaConstruct = new JaypieLambda(this, "Function", {
|
|
679
|
+
allowAllOutbound,
|
|
680
|
+
allowPublicSubnet,
|
|
681
|
+
architecture,
|
|
689
682
|
code,
|
|
683
|
+
codeSigningConfig,
|
|
684
|
+
datadogApiKeyArn,
|
|
685
|
+
deadLetterQueue,
|
|
686
|
+
deadLetterQueueEnabled,
|
|
687
|
+
deadLetterTopic,
|
|
688
|
+
description,
|
|
690
689
|
environment: {
|
|
691
690
|
...environment,
|
|
692
691
|
CDK_ENV_QUEUE_URL: this._queue.queueUrl,
|
|
693
692
|
},
|
|
693
|
+
environmentEncryption,
|
|
694
694
|
envSecrets,
|
|
695
|
+
ephemeralStorageSize,
|
|
696
|
+
filesystem,
|
|
695
697
|
handler,
|
|
698
|
+
initialPolicy,
|
|
696
699
|
layers,
|
|
697
700
|
logRetention,
|
|
701
|
+
logRetentionRole,
|
|
702
|
+
logRetentionRetryOptions,
|
|
703
|
+
maxEventAge,
|
|
698
704
|
memorySize,
|
|
699
705
|
paramsAndSecrets,
|
|
706
|
+
paramsAndSecretsOptions,
|
|
707
|
+
profiling,
|
|
708
|
+
profilingGroup,
|
|
709
|
+
provisionedConcurrentExecutions,
|
|
700
710
|
reservedConcurrentExecutions,
|
|
711
|
+
retryAttempts,
|
|
701
712
|
roleTag,
|
|
702
713
|
runtime,
|
|
714
|
+
runtimeManagementMode,
|
|
703
715
|
secrets,
|
|
716
|
+
securityGroups,
|
|
704
717
|
timeout,
|
|
718
|
+
tracing,
|
|
705
719
|
vendorTag,
|
|
720
|
+
vpc,
|
|
721
|
+
vpcSubnets,
|
|
706
722
|
});
|
|
707
723
|
// Set up queue and lambda integration
|
|
708
724
|
this._queue.grantConsumeMessages(this._lambdaConstruct);
|
|
@@ -718,9 +734,6 @@ class JaypieQueuedLambda extends Construct {
|
|
|
718
734
|
get lambda() {
|
|
719
735
|
return this._lambdaConstruct.lambda;
|
|
720
736
|
}
|
|
721
|
-
get code() {
|
|
722
|
-
return this._lambdaConstruct.code;
|
|
723
|
-
}
|
|
724
737
|
// IFunction implementation
|
|
725
738
|
get functionArn() {
|
|
726
739
|
return this._lambdaConstruct.functionArn;
|
|
@@ -873,6 +886,9 @@ class JaypieQueuedLambda extends Construct {
|
|
|
873
886
|
metricSentMessageSize(props) {
|
|
874
887
|
return this._queue.metricSentMessageSize(props);
|
|
875
888
|
}
|
|
889
|
+
addEnvironment(key, value) {
|
|
890
|
+
this._lambdaConstruct.addEnvironment(key, value);
|
|
891
|
+
}
|
|
876
892
|
}
|
|
877
893
|
|
|
878
894
|
class JaypieBucketQueuedLambda extends JaypieQueuedLambda {
|
|
@@ -1834,5 +1850,5 @@ class JaypieWebDeploymentBucket extends Construct {
|
|
|
1834
1850
|
}
|
|
1835
1851
|
}
|
|
1836
1852
|
|
|
1837
|
-
export { JaypieApiGateway, JaypieAppStack, JaypieBucketQueuedLambda, JaypieDatadogSecret, JaypieEnvSecret, JaypieExpressLambda, JaypieHostedZone, JaypieInfrastructureStack, JaypieLambda, JaypieMongoDbSecret, JaypieOpenAiSecret, JaypieQueuedLambda, JaypieSsoGroups, JaypieStack, JaypieTraceSigningKeySecret, JaypieWebDeploymentBucket, PermissionSetType,
|
|
1853
|
+
export { JaypieApiGateway, JaypieAppStack, JaypieBucketQueuedLambda, JaypieDatadogSecret, JaypieEnvSecret, JaypieExpressLambda, JaypieHostedZone, JaypieInfrastructureStack, JaypieLambda, JaypieMongoDbSecret, JaypieOpenAiSecret, JaypieQueuedLambda, JaypieSsoGroups, JaypieStack, JaypieTraceSigningKeySecret, JaypieWebDeploymentBucket, PermissionSetType, addDatadogLayers, constructEnvName, constructStackName, constructTagger, envHostname, isEnv, isProductionEnv, isSandboxEnv, jaypieLambdaEnv, resolveDatadogLayers, resolveHostedZone, resolveParamsAndSecrets };
|
|
1838
1854
|
//# sourceMappingURL=index.js.map
|