From 44a22b3d0b346415e85125f126957db587736aa0 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Tue, 23 Aug 2022 08:48:38 -0500 Subject: [PATCH 1/7] exponential backoff fix --- src/installer/cdk/src/index.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/installer/cdk/src/index.ts b/src/installer/cdk/src/index.ts index d86385ce3..bfa26c919 100644 --- a/src/installer/cdk/src/index.ts +++ b/src/installer/cdk/src/index.ts @@ -115,6 +115,12 @@ class Installer extends cdk.Stack { default: 680, }); + const backoffStartDelay = new cdk.CfnParameter(this, 'Backoff Start Delay', { + description: + 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 500 unless needed.', + default: 500, + }); + const stateMachineName = `${acceleratorPrefix}MainStateMachine_sm`; // The state machine name has to match the name of the state machine in initial setup @@ -322,6 +328,10 @@ class Installer extends cdk.Stack { type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, value: stackDeployPageSize.valueAsString, }, + BACKOFF_START_DELAY: { + type: codebuild.BuildEnvironmentVariableType.PLAINTEXT, + value: backoffStartDelay.valueAsString, + }, }, }, cache: codebuild.Cache.local(codebuild.LocalCacheMode.SOURCE), From 2352ea06c785a3521201ac8bd89f7d078613d905 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Tue, 23 Aug 2022 08:49:40 -0500 Subject: [PATCH 2/7] exponential backoff fix --- src/core/cdk/src/index.ts | 2 ++ src/core/cdk/src/initial-setup.ts | 2 ++ .../src/core/accelerator-stack.ts | 3 ++- src/lib/cdk-accelerator/src/core/index.ts | 1 + .../src/core/lambda-env-variables.ts | 10 ++++++++++ .../cdk-cfn-utils/cdk/index.ts | 18 +++++++++++++++++- 6 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/lib/cdk-accelerator/src/core/lambda-env-variables.ts diff --git a/src/core/cdk/src/index.ts b/src/core/cdk/src/index.ts index a755d7670..cd57b9759 100644 --- a/src/core/cdk/src/index.ts +++ b/src/core/cdk/src/index.ts @@ -39,6 +39,7 @@ async function main() { env.CONFIG_S3_BUCKET || `${acceleratorPrefix.toLowerCase()}${cdk.Aws.ACCOUNT_ID}-${cdk.Aws.REGION}-config`; const codebuildComputeType = env.BUILD_COMPUTE_TYPE || 'BUILD_GENERAL1_LARGE'; const pageSize = env.DEPLOY_STACK_PAGE_SIZE || '900'; + const backoff = env.BACKOFF_START_DELAY; const enablePrebuiltProject = 'ENABLE_PREBUILT_PROJECT' in env; const notificationEmail = env.NOTIFICATION_EMAIL || 'notify@example.com'; const installerCmk = env.INSTALLER_CMK || `alias/${acceleratorPrefix}Installer-Key`; @@ -70,6 +71,7 @@ async function main() { installerCmk, codebuildComputeType, pageSize, + backoff, }); } diff --git a/src/core/cdk/src/initial-setup.ts b/src/core/cdk/src/initial-setup.ts index 2f8f66cc7..57f665d6c 100644 --- a/src/core/cdk/src/initial-setup.ts +++ b/src/core/cdk/src/initial-setup.ts @@ -57,6 +57,7 @@ export namespace InitialSetup { // eslint-disable-next-line @typescript-eslint/no-explicit-any codebuildComputeType: any; pageSize: string; + backoff: string | undefined; /** * Current Accelerator version */ @@ -264,6 +265,7 @@ export namespace InitialSetup { SUBNET_CIDR_ASSIGNED_POOL: subnetCidrPoolTable.tableName, CIDR_POOL: cidrPoolTable.tableName, DEPLOY_STACK_PAGE_SIZE: props.pageSize, + BACKOFF_START_DELAY: props.backoff || '', COMPUTE_TYPE: props.codebuildComputeType, }, }); diff --git a/src/lib/cdk-accelerator/src/core/accelerator-stack.ts b/src/lib/cdk-accelerator/src/core/accelerator-stack.ts index a813c0218..1b8e18126 100644 --- a/src/lib/cdk-accelerator/src/core/accelerator-stack.ts +++ b/src/lib/cdk-accelerator/src/core/accelerator-stack.ts @@ -12,7 +12,7 @@ */ import * as cdk from '@aws-cdk/core'; -import { AcceleratorNameTagger, AcceleratorProtectedTagger } from '.'; +import { AcceleratorNameTagger, AcceleratorProtectedTagger, LambdaEnvironmentVariables } from '.'; export interface AcceleratorStackProps extends cdk.StackProps { acceleratorName: string; @@ -34,6 +34,7 @@ export class AcceleratorStack extends cdk.Stack { cdk.Aspects.of(this).add(new cdk.Tag('Accelerator', this.acceleratorName)); cdk.Aspects.of(this).add(new AcceleratorNameTagger()); cdk.Aspects.of(this).add(new AcceleratorProtectedTagger(this.acceleratorName)); + cdk.Aspects.of(this).add(new LambdaEnvironmentVariables()); } static of(construct: cdk.IConstruct): AcceleratorStack { diff --git a/src/lib/cdk-accelerator/src/core/index.ts b/src/lib/cdk-accelerator/src/core/index.ts index a38054f14..cc25176d6 100644 --- a/src/lib/cdk-accelerator/src/core/index.ts +++ b/src/lib/cdk-accelerator/src/core/index.ts @@ -14,3 +14,4 @@ export * from './cfn-include'; export * from './name-tagger'; export * from './accelerator-protected-tagger'; +export * from './lambda-env-variables'; diff --git a/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts b/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts new file mode 100644 index 000000000..229621de8 --- /dev/null +++ b/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts @@ -0,0 +1,10 @@ +import * as cdk from '@aws-cdk/core'; +import * as lambda from '@aws-cdk/aws-lambda'; + +export class LambdaEnvironmentVariables implements cdk.IAspect { + visit(node: cdk.IConstruct): void { + if (node instanceof lambda.Function) { + node.addEnvironment('BACKOFF_START_DELAY', process.env['BACKOFF_START_DELAY'] || '5000'); + } + } +} diff --git a/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts b/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts index a4b0d75cc..458a19dde 100644 --- a/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts +++ b/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts @@ -22,8 +22,24 @@ export function throttlingBackOff( request: () => Promise, options?: Partial>, ): Promise { + const defaultDelay = 500; + let maxDelayValue = 5000; + + if (process.env.BACKOFF_START_DELAY) { + const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10); + if (Number.isInteger(backoffStartDelay)) { + maxDelayValue = backoffStartDelay; + } + } + + // Add jitter to the starting delay + const startingDelay = Math.random() * (maxDelayValue - defaultDelay + 1) + defaultDelay; + + console.log(`throttlingBackOff delay set to ${startingDelay}`); + return backOff(request, { - startingDelay: 500, + startingDelay, + delayFirstAttempt: true, jitter: 'full', retry: isThrottlingError, ...options, From 9e27a20d11da6ba3f67f972d412e727322c40975 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Tue, 23 Aug 2022 10:13:46 -0500 Subject: [PATCH 3/7] Fixed backoff for lambdas --- src/installer/cdk/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer/cdk/src/index.ts b/src/installer/cdk/src/index.ts index bfa26c919..39c6b995d 100644 --- a/src/installer/cdk/src/index.ts +++ b/src/installer/cdk/src/index.ts @@ -118,7 +118,7 @@ class Installer extends cdk.Stack { const backoffStartDelay = new cdk.CfnParameter(this, 'Backoff Start Delay', { description: 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 500 unless needed.', - default: 500, + default: 5000, }); const stateMachineName = `${acceleratorPrefix}MainStateMachine_sm`; From 96548c678b82e06416a281620b34c28f0a5b72c8 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Tue, 23 Aug 2022 10:42:10 -0500 Subject: [PATCH 4/7] added backoff in other location --- .../opensiem/lambdas/common/src/backoff.ts | 19 ++++++++++++++++++- src/lib/common/src/aws/backoff.ts | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts b/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts index bec056d47..3c9fcb348 100644 --- a/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts +++ b/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts @@ -20,8 +20,24 @@ export function throttlingBackOff( request: () => Promise, options?: Partial>, ): Promise { + const defaultDelay = 500; + let maxDelayValue = 5000; + + if (process.env.BACKOFF_START_DELAY) { + const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10); + if (Number.isInteger(backoffStartDelay)) { + maxDelayValue = backoffStartDelay; + } + } + + // Add jitter to the starting delay + const startingDelay = Math.random() * (maxDelayValue - defaultDelay + 1) + defaultDelay; + + console.log(`throttlingBackOff delay set to ${startingDelay}`); + return backOff(request, { - startingDelay: 500, + startingDelay, + delayFirstAttempt: true, jitter: 'full', retry: isThrottlingError, ...options, @@ -34,6 +50,7 @@ export const isThrottlingError = (e: any) => e.code === 'ConcurrentModificationException' || // Retry for AWS Organizations e.code === 'InsufficientDeliveryPolicyException' || // Retry for ConfigService e.code === 'NoAvailableDeliveryChannelException' || // Retry for ConfigService + e.code === 'ConcurrentModifications' || // Retry for AssociateHostedZone e.code === 'TooManyRequestsException' || e.code === 'Throttling' || e.code === 'ThrottlingException' || diff --git a/src/lib/common/src/aws/backoff.ts b/src/lib/common/src/aws/backoff.ts index bec056d47..3c9fcb348 100644 --- a/src/lib/common/src/aws/backoff.ts +++ b/src/lib/common/src/aws/backoff.ts @@ -20,8 +20,24 @@ export function throttlingBackOff( request: () => Promise, options?: Partial>, ): Promise { + const defaultDelay = 500; + let maxDelayValue = 5000; + + if (process.env.BACKOFF_START_DELAY) { + const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10); + if (Number.isInteger(backoffStartDelay)) { + maxDelayValue = backoffStartDelay; + } + } + + // Add jitter to the starting delay + const startingDelay = Math.random() * (maxDelayValue - defaultDelay + 1) + defaultDelay; + + console.log(`throttlingBackOff delay set to ${startingDelay}`); + return backOff(request, { - startingDelay: 500, + startingDelay, + delayFirstAttempt: true, jitter: 'full', retry: isThrottlingError, ...options, @@ -34,6 +50,7 @@ export const isThrottlingError = (e: any) => e.code === 'ConcurrentModificationException' || // Retry for AWS Organizations e.code === 'InsufficientDeliveryPolicyException' || // Retry for ConfigService e.code === 'NoAvailableDeliveryChannelException' || // Retry for ConfigService + e.code === 'ConcurrentModifications' || // Retry for AssociateHostedZone e.code === 'TooManyRequestsException' || e.code === 'Throttling' || e.code === 'ThrottlingException' || From 7d59f26439307cb7e8feed94915b7ec164183eb7 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Wed, 24 Aug 2022 09:39:15 -0500 Subject: [PATCH 5/7] fixed lambda timeouts and added timeout aspect --- src/deployments/cdk/src/common/alb-ip-forwarding.ts | 4 ++-- .../cdk-accelerator/src/core/accelerator-stack.ts | 3 ++- src/lib/cdk-accelerator/src/core/index.ts | 1 + .../src/core/lambda-default-timeout.ts | 12 ++++++++++++ .../cdk-acm-import-certificate/cdk/index.ts | 2 +- .../cdk-cur-report-definition/cdk/index.ts | 2 +- .../cdk-ec2-ebs-default-encryption/cdk/index.ts | 2 +- .../custom-resources/cdk-ec2-keypair/cdk/index.ts | 2 +- src/lib/custom-resources/cdk-kms-grant/cdk/index.ts | 2 +- .../cdk/index.ts | 2 +- .../ec2-ebs-default-encryption/lib/index.ts | 2 +- 11 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/lib/cdk-accelerator/src/core/lambda-default-timeout.ts diff --git a/src/deployments/cdk/src/common/alb-ip-forwarding.ts b/src/deployments/cdk/src/common/alb-ip-forwarding.ts index b79a36a2f..de0f68fab 100644 --- a/src/deployments/cdk/src/common/alb-ip-forwarding.ts +++ b/src/deployments/cdk/src/common/alb-ip-forwarding.ts @@ -59,7 +59,7 @@ export class AlbIpForwarding extends Construct { runtime: lambda.Runtime.NODEJS_14_X, code: lambdaCode, handler: 'index.albIpMonitor', - timeout: Duration.seconds(30), + timeout: Duration.seconds(60), environment: { LOOKUP_TABLE: ddbTable.tableName, }, @@ -82,7 +82,7 @@ export class AlbIpForwarding extends Construct { runtime: lambda.Runtime.NODEJS_14_X, handler: 'index.albTargetRecordMonitor', code: lambdaCode, - timeout: Duration.seconds(30), + timeout: Duration.seconds(60), environment: { LOOKUP_TABLE: ddbTable.tableName, }, diff --git a/src/lib/cdk-accelerator/src/core/accelerator-stack.ts b/src/lib/cdk-accelerator/src/core/accelerator-stack.ts index 1b8e18126..f46dc3e40 100644 --- a/src/lib/cdk-accelerator/src/core/accelerator-stack.ts +++ b/src/lib/cdk-accelerator/src/core/accelerator-stack.ts @@ -12,7 +12,7 @@ */ import * as cdk from '@aws-cdk/core'; -import { AcceleratorNameTagger, AcceleratorProtectedTagger, LambdaEnvironmentVariables } from '.'; +import { AcceleratorNameTagger, AcceleratorProtectedTagger, LambdaEnvironmentVariables, LambdaDefaultTimeout } from '.'; export interface AcceleratorStackProps extends cdk.StackProps { acceleratorName: string; @@ -35,6 +35,7 @@ export class AcceleratorStack extends cdk.Stack { cdk.Aspects.of(this).add(new AcceleratorNameTagger()); cdk.Aspects.of(this).add(new AcceleratorProtectedTagger(this.acceleratorName)); cdk.Aspects.of(this).add(new LambdaEnvironmentVariables()); + cdk.Aspects.of(this).add(new LambdaDefaultTimeout()); } static of(construct: cdk.IConstruct): AcceleratorStack { diff --git a/src/lib/cdk-accelerator/src/core/index.ts b/src/lib/cdk-accelerator/src/core/index.ts index cc25176d6..e58f07144 100644 --- a/src/lib/cdk-accelerator/src/core/index.ts +++ b/src/lib/cdk-accelerator/src/core/index.ts @@ -15,3 +15,4 @@ export * from './cfn-include'; export * from './name-tagger'; export * from './accelerator-protected-tagger'; export * from './lambda-env-variables'; +export * from './lambda-default-timeout'; diff --git a/src/lib/cdk-accelerator/src/core/lambda-default-timeout.ts b/src/lib/cdk-accelerator/src/core/lambda-default-timeout.ts new file mode 100644 index 000000000..0f8acad69 --- /dev/null +++ b/src/lib/cdk-accelerator/src/core/lambda-default-timeout.ts @@ -0,0 +1,12 @@ +import * as cdk from '@aws-cdk/core'; +import * as lambda from '@aws-cdk/aws-lambda'; + +export class LambdaDefaultTimeout implements cdk.IAspect { + visit(node: cdk.IConstruct): void { + if (node instanceof lambda.CfnFunction) { + if (!node.timeout) { + node.timeout = 60; + } + } + } +} diff --git a/src/lib/custom-resources/cdk-acm-import-certificate/cdk/index.ts b/src/lib/custom-resources/cdk-acm-import-certificate/cdk/index.ts index 76352f486..ee0f1cef6 100644 --- a/src/lib/custom-resources/cdk-acm-import-certificate/cdk/index.ts +++ b/src/lib/custom-resources/cdk-acm-import-certificate/cdk/index.ts @@ -122,7 +122,7 @@ export class AcmImportCertificate extends cdk.Construct implements cdk.ITaggable code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/cdk-cur-report-definition/cdk/index.ts b/src/lib/custom-resources/cdk-cur-report-definition/cdk/index.ts index a809da332..6bf5c75e9 100644 --- a/src/lib/custom-resources/cdk-cur-report-definition/cdk/index.ts +++ b/src/lib/custom-resources/cdk-cur-report-definition/cdk/index.ts @@ -135,7 +135,7 @@ export class CurReportDefinition extends cdk.Construct { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/cdk-ec2-ebs-default-encryption/cdk/index.ts b/src/lib/custom-resources/cdk-ec2-ebs-default-encryption/cdk/index.ts index b770dba30..ad1fcfb10 100644 --- a/src/lib/custom-resources/cdk-ec2-ebs-default-encryption/cdk/index.ts +++ b/src/lib/custom-resources/cdk-ec2-ebs-default-encryption/cdk/index.ts @@ -87,7 +87,7 @@ export class EbsDefaultEncryption extends cdk.Construct { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/cdk-ec2-keypair/cdk/index.ts b/src/lib/custom-resources/cdk-ec2-keypair/cdk/index.ts index 5bbd9aeea..ff01e8138 100644 --- a/src/lib/custom-resources/cdk-ec2-keypair/cdk/index.ts +++ b/src/lib/custom-resources/cdk-ec2-keypair/cdk/index.ts @@ -100,7 +100,7 @@ export class Keypair extends cdk.Construct implements cdk.ITaggable { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/cdk-kms-grant/cdk/index.ts b/src/lib/custom-resources/cdk-kms-grant/cdk/index.ts index dd75faeff..31122e398 100644 --- a/src/lib/custom-resources/cdk-kms-grant/cdk/index.ts +++ b/src/lib/custom-resources/cdk-kms-grant/cdk/index.ts @@ -118,7 +118,7 @@ export class Grant extends cdk.Construct { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/cdk-s3-update-logarchive-bucket-policy/cdk/index.ts b/src/lib/custom-resources/cdk-s3-update-logarchive-bucket-policy/cdk/index.ts index 056e3219a..10b806f2f 100644 --- a/src/lib/custom-resources/cdk-s3-update-logarchive-bucket-policy/cdk/index.ts +++ b/src/lib/custom-resources/cdk-s3-update-logarchive-bucket-policy/cdk/index.ts @@ -106,7 +106,7 @@ export class S3UpdateLogArchivePolicy extends cdk.Construct { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(30), + timeout: cdk.Duration.seconds(60), }); } } diff --git a/src/lib/custom-resources/ec2-ebs-default-encryption/lib/index.ts b/src/lib/custom-resources/ec2-ebs-default-encryption/lib/index.ts index b770dba30..ad1fcfb10 100644 --- a/src/lib/custom-resources/ec2-ebs-default-encryption/lib/index.ts +++ b/src/lib/custom-resources/ec2-ebs-default-encryption/lib/index.ts @@ -87,7 +87,7 @@ export class EbsDefaultEncryption extends cdk.Construct { code: lambda.Code.fromAsset(lambdaDir), handler: 'index.handler', role, - timeout: cdk.Duration.seconds(10), + timeout: cdk.Duration.seconds(60), }); } } From 8a8db5876ac68dbe3e104b561390c0da36efe0e5 Mon Sep 17 00:00:00 2001 From: hickeydh-aws Date: Wed, 24 Aug 2022 10:04:04 -0500 Subject: [PATCH 6/7] fixed typo --- src/installer/cdk/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer/cdk/src/index.ts b/src/installer/cdk/src/index.ts index 39c6b995d..0476683eb 100644 --- a/src/installer/cdk/src/index.ts +++ b/src/installer/cdk/src/index.ts @@ -117,7 +117,7 @@ class Installer extends cdk.Stack { const backoffStartDelay = new cdk.CfnParameter(this, 'Backoff Start Delay', { description: - 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 500 unless needed.', + 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 5000 unless needed.', default: 5000, }); From a312e4ecaa9115a54fce1c7df8b88a66db241fb8 Mon Sep 17 00:00:00 2001 From: Brian969 <56414362+Brian969@users.noreply.github.com> Date: Fri, 30 Sep 2022 14:43:10 -0400 Subject: [PATCH 7/7] tweak default max jitter delay to 2s from 5s --- .../Add-ons/opensiem/lambdas/common/src/backoff.ts | 2 +- src/installer/cdk/src/index.ts | 4 ++-- src/lib/cdk-accelerator/src/core/lambda-env-variables.ts | 2 +- src/lib/common/src/aws/backoff.ts | 2 +- src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts b/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts index 3c9fcb348..23ee07437 100644 --- a/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts +++ b/reference-artifacts/Add-ons/opensiem/lambdas/common/src/backoff.ts @@ -21,7 +21,7 @@ export function throttlingBackOff( options?: Partial>, ): Promise { const defaultDelay = 500; - let maxDelayValue = 5000; + let maxDelayValue = 2000; if (process.env.BACKOFF_START_DELAY) { const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10); diff --git a/src/installer/cdk/src/index.ts b/src/installer/cdk/src/index.ts index 0476683eb..d82c9c9e8 100644 --- a/src/installer/cdk/src/index.ts +++ b/src/installer/cdk/src/index.ts @@ -117,8 +117,8 @@ class Installer extends cdk.Stack { const backoffStartDelay = new cdk.CfnParameter(this, 'Backoff Start Delay', { description: - 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 5000 unless needed.', - default: 5000, + 'The start delay for exponential backoff of API calls in milliseconds. Leave at the default of 2000 unless needed.', + default: 2000, }); const stateMachineName = `${acceleratorPrefix}MainStateMachine_sm`; diff --git a/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts b/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts index 229621de8..a50674a44 100644 --- a/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts +++ b/src/lib/cdk-accelerator/src/core/lambda-env-variables.ts @@ -4,7 +4,7 @@ import * as lambda from '@aws-cdk/aws-lambda'; export class LambdaEnvironmentVariables implements cdk.IAspect { visit(node: cdk.IConstruct): void { if (node instanceof lambda.Function) { - node.addEnvironment('BACKOFF_START_DELAY', process.env['BACKOFF_START_DELAY'] || '5000'); + node.addEnvironment('BACKOFF_START_DELAY', process.env['BACKOFF_START_DELAY'] || '2000'); } } } diff --git a/src/lib/common/src/aws/backoff.ts b/src/lib/common/src/aws/backoff.ts index 3c9fcb348..23ee07437 100644 --- a/src/lib/common/src/aws/backoff.ts +++ b/src/lib/common/src/aws/backoff.ts @@ -21,7 +21,7 @@ export function throttlingBackOff( options?: Partial>, ): Promise { const defaultDelay = 500; - let maxDelayValue = 5000; + let maxDelayValue = 2000; if (process.env.BACKOFF_START_DELAY) { const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10); diff --git a/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts b/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts index 458a19dde..2a086040f 100644 --- a/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts +++ b/src/lib/custom-resources/cdk-cfn-utils/cdk/index.ts @@ -23,7 +23,7 @@ export function throttlingBackOff( options?: Partial>, ): Promise { const defaultDelay = 500; - let maxDelayValue = 5000; + let maxDelayValue = 2000; if (process.env.BACKOFF_START_DELAY) { const backoffStartDelay = parseInt(process.env.BACKOFF_START_DELAY, 10);