@jaypie/constructs 1.1.29 → 1.1.31

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.
@@ -25,6 +25,7 @@ export interface JaypieLambdaProps {
25
25
  parameterStoreTtl?: number;
26
26
  secretsManagerTtl?: number;
27
27
  };
28
+ provisionedConcurrentExecutions?: number;
28
29
  reservedConcurrentExecutions?: number;
29
30
  roleTag?: string;
30
31
  runtime?: lambda.Runtime;
@@ -141,7 +141,23 @@ function stackTagger(stack, { name } = {}) {
141
141
  class JaypieApiGateway extends constructs.Construct {
142
142
  constructor(scope, id, props) {
143
143
  super(scope, id);
144
- const { certificate = true, handler, host, name, roleTag = cdk.CDK.ROLE.API, zone, } = props;
144
+ const { certificate = true, handler, host: propsHost, name, roleTag = cdk.CDK.ROLE.API, zone: propsZone, } = props;
145
+ // Determine zone from props or environment
146
+ let zone = propsZone;
147
+ if (!zone && process.env.CDK_ENV_API_HOSTED_ZONE) {
148
+ zone = process.env.CDK_ENV_API_HOSTED_ZONE;
149
+ }
150
+ // Determine host from props or environment
151
+ let host = propsHost;
152
+ if (!host) {
153
+ if (process.env.CDK_ENV_API_HOST_NAME) {
154
+ host = process.env.CDK_ENV_API_HOST_NAME;
155
+ }
156
+ else if (process.env.CDK_ENV_API_SUBDOMAIN &&
157
+ process.env.CDK_ENV_API_HOSTED_ZONE) {
158
+ host = cdk.mergeDomain(process.env.CDK_ENV_API_SUBDOMAIN, process.env.CDK_ENV_API_HOSTED_ZONE);
159
+ }
160
+ }
145
161
  const apiGatewayName = name || constructEnvName("ApiGateway");
146
162
  const certificateName = constructEnvName("Certificate");
147
163
  const apiDomainName = constructEnvName("ApiDomainName");
@@ -305,7 +321,7 @@ class JaypieAppStack extends JaypieStack {
305
321
  class JaypieLambda extends constructs.Construct {
306
322
  constructor(scope, id, props) {
307
323
  super(scope, id);
308
- const { code, datadogApiKeyArn, environment: initialEnvironment = {}, envSecrets = {}, handler = "index.handler", layers = [], logRetention = cdk.CDK.LAMBDA.LOG_RETENTION, memorySize = cdk.CDK.LAMBDA.MEMORY_SIZE, paramsAndSecrets, paramsAndSecretsOptions, reservedConcurrentExecutions, roleTag = cdk.CDK.ROLE.PROCESSING, runtime = lambda__namespace.Runtime.NODEJS_22_X, secrets = [], timeout = cdk$1.Duration.seconds(cdk.CDK.DURATION.LAMBDA_WORKER), vendorTag, } = props;
324
+ const { code, datadogApiKeyArn, environment: initialEnvironment = {}, envSecrets = {}, handler = "index.handler", layers = [], logRetention = cdk.CDK.LAMBDA.LOG_RETENTION, memorySize = cdk.CDK.LAMBDA.MEMORY_SIZE, paramsAndSecrets, paramsAndSecretsOptions, provisionedConcurrentExecutions, reservedConcurrentExecutions, roleTag = cdk.CDK.ROLE.PROCESSING, runtime = lambda__namespace.Runtime.NODEJS_22_X, secrets = [], timeout = cdk$1.Duration.seconds(cdk.CDK.DURATION.LAMBDA_WORKER), vendorTag, } = props;
309
325
  // Create a mutable copy of the environment variables
310
326
  let environment = { ...initialEnvironment };
311
327
  // Default environment variables from process.env if present
@@ -421,6 +437,14 @@ class JaypieLambda extends constructs.Construct {
421
437
  const datadogApiKey = secretsmanager__namespace.Secret.fromSecretCompleteArn(this, "DatadogApiKeyGrant", resolvedDatadogApiKeyArn);
422
438
  datadogApiKey.grantRead(this._lambda);
423
439
  }
440
+ // Configure provisioned concurrency if specified
441
+ if (provisionedConcurrentExecutions !== undefined) {
442
+ new lambda__namespace.Alias(this, "ProvisionedAlias", {
443
+ aliasName: "provisioned",
444
+ version: this._lambda.currentVersion,
445
+ provisionedConcurrentExecutions,
446
+ });
447
+ }
424
448
  if (roleTag) {
425
449
  cdk$1.Tags.of(this._lambda).add(cdk.CDK.TAG.ROLE, roleTag);
426
450
  }