From afd4e785e9b03503d489449e7ac83ed11b5af2d1 Mon Sep 17 00:00:00 2001 From: Dmitry Gulin Date: Wed, 5 Nov 2025 16:49:36 -0500 Subject: [PATCH 1/3] [New pattern] Using CDK to create custom resource with wait condition --- .../.gitignore | 10 ++ .../.npmignore | 6 ++ .../README.md | 86 +++++++++++++++ .../bin/app.ts | 15 +++ .../cdk.json | 86 +++++++++++++++ .../example-pattern.json | 72 +++++++++++++ .../image/architecture.png | Bin 0 -> 188500 bytes .../lib/demo-stack.ts | 98 ++++++++++++++++++ .../lib/lambda/custom-resource-handler.mts | 84 +++++++++++++++ .../lib/lambda/send-completion-signal.mts | 48 +++++++++ .../lib/sfn/long-running-process.asl.json | 29 ++++++ .../package.json | 26 +++++ .../tsconfig.json | 12 +++ 13 files changed, 572 insertions(+) create mode 100644 cdk-custom-resource-with-wait-condition/.gitignore create mode 100644 cdk-custom-resource-with-wait-condition/.npmignore create mode 100644 cdk-custom-resource-with-wait-condition/README.md create mode 100644 cdk-custom-resource-with-wait-condition/bin/app.ts create mode 100644 cdk-custom-resource-with-wait-condition/cdk.json create mode 100644 cdk-custom-resource-with-wait-condition/example-pattern.json create mode 100644 cdk-custom-resource-with-wait-condition/image/architecture.png create mode 100644 cdk-custom-resource-with-wait-condition/lib/demo-stack.ts create mode 100644 cdk-custom-resource-with-wait-condition/lib/lambda/custom-resource-handler.mts create mode 100644 cdk-custom-resource-with-wait-condition/lib/lambda/send-completion-signal.mts create mode 100644 cdk-custom-resource-with-wait-condition/lib/sfn/long-running-process.asl.json create mode 100644 cdk-custom-resource-with-wait-condition/package.json create mode 100644 cdk-custom-resource-with-wait-condition/tsconfig.json diff --git a/cdk-custom-resource-with-wait-condition/.gitignore b/cdk-custom-resource-with-wait-condition/.gitignore new file mode 100644 index 0000000000..28c650ddca --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/.gitignore @@ -0,0 +1,10 @@ +*.js +!jest.config.js +*.d.ts +node_modules + +# CDK asset staging directory +.cdk.staging +cdk.out + +dist/ diff --git a/cdk-custom-resource-with-wait-condition/.npmignore b/cdk-custom-resource-with-wait-condition/.npmignore new file mode 100644 index 0000000000..c1d6d45dcf --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/.npmignore @@ -0,0 +1,6 @@ +*.ts +!*.d.ts + +# CDK asset staging directory +.cdk.staging +cdk.out diff --git a/cdk-custom-resource-with-wait-condition/README.md b/cdk-custom-resource-with-wait-condition/README.md new file mode 100644 index 0000000000..b8fc4a1917 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/README.md @@ -0,0 +1,86 @@ +# Use AWS CloudFormation Wait Conditions for long-running custom resources + +This project demonstrates how to implement [AWS CloudFormation](https://aws.amazon.com/cloudformation/) custom resources that can run for up to 12 hours using [Wait Conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html). + +AWS Lambda functions have a 15-minute execution timeout, limiting CloudFormation custom resources to short-running operations. This pattern extends custom resource execution time to 12 hours by decoupling lifecycle management from process execution. + +![Architecture Diagram](./image/architecture.png) + +## How it works + +The architecture uses four components: + +1. **Custom Resource Handler Lambda** - Receives CloudFormation lifecycle events and starts a Step Function execution, then returns success immediately to prevent timeouts +2. **Step Function** - Orchestrates the long-running process with built-in retry mechanisms and error handling +3. **Completion Signal Handler Lambda** - Sends success/failure signals to the Wait Condition Handle when the process completes +4. **Wait Condition** - Blocks CloudFormation stack completion until receiving the completion signal + +This approach enables asynchronous processing with proper CloudFormation integration, supporting use cases like database migrations, complex infrastructure provisioning, and third-party system integrations that exceed Lambda's 15-minute limit. + +Important: this application uses various AWS services and there are costs associated with these services after the Free Tier usage - please see the [AWS Pricing page](https://aws.amazon.com/pricing/) for details. You are responsible for any AWS costs incurred. No warranty is implied in this example. + +## Requirements + +* [Create an AWS account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) if you do not already have one and log in. The IAM user that you use must have sufficient permissions to make necessary AWS service calls and manage AWS resources. +* [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) installed and configured +* [Git Installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +* [Node and NPM](https://nodejs.org/en/download/) installed +* [AWS Cloud Development Kit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (AWS CDK) installed + +## Deploy + +1. Clone the project to your local working directory + + ```sh + git clone https://github.com/aws-samples/serverless-patterns + ``` + +1. Change the working directory to this pattern's directory + + ```sh + cd cdk-custom-resource-with-wait-condition + ``` + +1. Install the project dependencies + + ```sh + npm install + ``` + +1. Deploy the stack to your default AWS account and region + + ```sh + cdk deploy --require-approval never + ``` + +## Test + +You can review Amazon CloudWatch logs for the Lambda functions and Step Function execution to confirm that the long-running process completed successfully and the wait condition was signaled. + +## Cleanup + +Run the given command to delete the resources that were created. It might take some time for the CloudFormation stack to get deleted. + +```sh +cdk destroy -f +``` + +## Useful commands + +* `npm run build` compile typescript to js +* `npm run watch` watch for changes and compile +* `npm run test` perform the jest unit tests +* `npx cdk deploy` deploy this stack to your default AWS account/region +* `npx cdk diff` compare deployed stack with current state +* `npx cdk synth` emits the synthesized CloudFormation template + +## References + +1. [Custom resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html) +2. [Using wait conditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html) +3. [Implementing long running deployments with AWS CloudFormation Custom Resources using AWS Step Functions](https://aws.amazon.com/blogs/devops/implementing-long-running-deployments-with-aws-cloudformation-custom-resources-using-aws-step-functions/) + +---- +Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +SPDX-License-Identifier: MIT-0 diff --git a/cdk-custom-resource-with-wait-condition/bin/app.ts b/cdk-custom-resource-with-wait-condition/bin/app.ts new file mode 100644 index 0000000000..542024c0ce --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/bin/app.ts @@ -0,0 +1,15 @@ +#!/usr/bin/env node +import { App } from 'aws-cdk-lib'; +import { DemoStack } from '../lib/demo-stack'; + +const app = new App(); + +// Deploy demo stack showing custom resource with wait condition pattern +new DemoStack(app, 'CdkCustomResourceWithWaitConditionStack', { + stackName: 'Custom-Resource-With-Wait-Condition-Demo', + description: 'Demo of a custom resource with a wait condition', + env: { + region: process.env.CDK_DEFAULT_REGION, + account: process.env.CDK_DEFAULT_ACCOUNT, + }, +}); \ No newline at end of file diff --git a/cdk-custom-resource-with-wait-condition/cdk.json b/cdk-custom-resource-with-wait-condition/cdk.json new file mode 100644 index 0000000000..47d5844195 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/cdk.json @@ -0,0 +1,86 @@ +{ + "app": "npx ts-node --prefer-ts-exts bin/app.ts", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "**/*.d.ts", + "**/*.js", + "tsconfig.json", + "package*.json", + "yarn.lock", + "node_modules", + "test" + ] + }, + "context": { + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, + "@aws-cdk/core:checkSecretUsage": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ], + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true, + "@aws-cdk/aws-iam:minimizePolicies": true, + "@aws-cdk/core:validateSnapshotRemovalPolicy": true, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": true, + "@aws-cdk/core:enablePartitionLiterals": true, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true, + "@aws-cdk/aws-route53-patters:useCertificate": true, + "@aws-cdk/customresources:installLatestAwsSdkDefault": false, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true, + "@aws-cdk/aws-redshift:columnId": true, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true, + "@aws-cdk/aws-kms:aliasNameRef": true, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": true, + "@aws-cdk/aws-efs:denyAnonymousAccess": true, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true, + "@aws-cdk/aws-eks:nodegroupNameAttribute": true, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": false, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": true, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": true, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": true, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": true, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": true, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true + } +} diff --git a/cdk-custom-resource-with-wait-condition/example-pattern.json b/cdk-custom-resource-with-wait-condition/example-pattern.json new file mode 100644 index 0000000000..7f97dce653 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/example-pattern.json @@ -0,0 +1,72 @@ +{ + "title": "Custom resource with wait condition", + "description": "Use AWS CloudFormation Wait Conditions for long-running custom resources up to 12 hours", + "language": "TypeScript", + "level": "200", + "framework": "AWS CDK", + "introBox": { + "headline": "How it works", + "text": [ + "AWS Lambda functions have a 15-minute execution timeout, limiting CloudFormation custom resources to short-running", + "operations. This pattern extends custom resource execution time to 12 hours using CloudFormation Wait Conditions.", + "The architecture uses four components working together: A Custom Resource Handler Lambda receives CloudFormation", + "lifecycle events and immediately starts a Step Function execution, then returns success to prevent timeouts.", + "The Step Function orchestrates the long-running process with built-in retry mechanisms and error handling.", + "When the process completes, a Completion Signal Handler Lambda sends success or failure signals to a Wait", + "Condition Handle URL. The Wait Condition blocks CloudFormation stack completion until receiving the signal.", + "This decouples custom resource lifecycle management from process execution, enabling asynchronous processing", + "with proper CloudFormation integration. The Step Function provides visual workflow monitoring and state management", + "while the Wait Condition ensures stack operations complete only after the long-running process finishes.", + "The pattern deploys two Lambda functions, one Step Function, a Wait Condition Handle, and a Wait Condition.", + "Use cases include database migrations, complex infrastructure provisioning, and third-party system integrations", + "that exceed Lambda's 15-minute limit." + ] + }, + "gitHub": { + "template": { + "repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/cdk-custom-resource-with-wait-condition", + "templateURL": "serverless-patterns/cdk-custom-resource-with-wait-condition", + "projectFolder": "cdk-custom-resource-with-wait-condition", + "templateFile": "lib/demo-stack.ts" + } + }, + "resources": { + "bullets": [ + { + "text": "Custom resources", + "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html" + }, + { + "text": "Using wait conditions", + "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html" + }, + { + "text": "Implementing long running deployments with AWS CloudFormation Custom Resources using AWS Step Functions", + "link": "https://aws.amazon.com/blogs/devops/implementing-long-running-deployments-with-aws-cloudformation-custom-resources-using-aws-step-functions/" + } + ] + }, + "deploy": { + "text": [ + "cdk deploy --require-approval never" + ] + }, + "testing": { + "text": [ + "Review Amazon CloudWatch logs for the Lambda functions and Step Function execution to confirm that the", + "long-running process completed successfully and the wait condition was signaled." + ] + }, + "cleanup": { + "text": [ + "Delete the stack: cdk destroy -f." + ] + }, + "authors": [ + { + "name": "Dmitry Gulin", + "bio": "Senior Delivery Consultant, AWS.", + "linkedin": "dmitry-gulin" + } + ] +} diff --git a/cdk-custom-resource-with-wait-condition/image/architecture.png b/cdk-custom-resource-with-wait-condition/image/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8994c876f5c4a4cba3d8d222e79f8136c75c492e GIT binary patch literal 188500 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 z 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 = { + architecture: Architecture.ARM_64, + loggingFormat: LoggingFormat.JSON, + runtime: Runtime.NODEJS_22_X, + memorySize: 256, + }; + + // Common configuration for CloudWatch log groups + const commonLogGroupProps: Partial = { + removalPolicy: RemovalPolicy.DESTROY, + retention: RetentionDays.ONE_WEEK, + }; + + // Lambda function that handles custom resource lifecycle events + // Starts Step Function execution and returns immediately + const customResourceHandler = new NodejsFunction(this, 'CustomResourceHandler', { + ...commonLambdaProps, + functionName: 'CustomResourceHandler', + entry: 'lib/lambda/custom-resource-handler.mts', + logGroup: new LogGroup(this, 'CustomResourceHandlerLogGroup', { + ...commonLogGroupProps, + logGroupName: `/demo/CustomResourceHandler`, + }), + }); + + // Lambda function that sends completion signals to wait condition handles + const sendCompletionSignalHandler = new NodejsFunction(this, 'SendCompletionSignalHandler', { + ...commonLambdaProps, + functionName: 'SendCompletionSignalHandler', + entry: 'lib/lambda/send-completion-signal.mts', + logGroup: new LogGroup(this, 'SendCompletionSignalHandlerLogGroup', { + ...commonLogGroupProps, + logGroupName: `/demo/SendCompletionSignalHandler`, + }), + }); + + // Step Function that simulates a long-running process + // Invokes completion signal Lambda when process finishes + const longRunningProcessStateMachine = new StateMachine(this, 'LongRunningProcessStateMachine', { + definitionBody: DefinitionBody.fromFile('lib/sfn/long-running-process.asl.json'), + stateMachineName: 'LongRunningProcessStateMachine', + definitionSubstitutions: { + SendCompletionSignalLambdaArn: sendCompletionSignalHandler.functionArn, + }, + logs: { + destination: new LogGroup(this, 'LongRunningProcessStateMachineLogGroup', { + ...commonLogGroupProps, + logGroupName: `/demo/LongRunningProcessStateMachine`, + }), + }, + }); + + // Grant permissions for Lambda functions to interact with Step Function + longRunningProcessStateMachine.grantStartExecution(customResourceHandler); + sendCompletionSignalHandler.grantInvoke(longRunningProcessStateMachine); + + // Custom resource that triggers the long-running process + const customResource = new CustomResource(this, 'CustomResource', { + serviceToken: customResourceHandler.functionArn, + properties: { + WaitConditionHandle: cfnWaitConditionHandle.ref, + StateMachineArn: longRunningProcessStateMachine.stateMachineArn, + } + }); + + // Wait condition that blocks stack completion until process finishes + const waitCondition = new CfnWaitCondition(this, 'WaitCondition', { + count: 1, + handle: cfnWaitConditionHandle.ref, + timeout: '60', // 60 seconds timeout + }); + + // Ensure wait condition depends on custom resource and state machine + waitCondition.node.addDependency(customResource); + waitCondition.node.addDependency(longRunningProcessStateMachine); + } +} diff --git a/cdk-custom-resource-with-wait-condition/lib/lambda/custom-resource-handler.mts b/cdk-custom-resource-with-wait-condition/lib/lambda/custom-resource-handler.mts new file mode 100644 index 0000000000..7551e57cf9 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/lib/lambda/custom-resource-handler.mts @@ -0,0 +1,84 @@ +import { CloudFormationCustomResourceEvent, CloudFormationCustomResourceHandler, CloudFormationCustomResourceResponse, Context } from "aws-lambda"; +import { SFNClient, StartExecutionCommand } from "@aws-sdk/client-sfn"; +import { randomUUID } from "node:crypto"; + +const sfnClient = new SFNClient({}); + +//#region Local TypeScript version of the cfn-response package +type Status = 'SUCCESS' | 'FAILED'; + +/** + * Creates a CloudFormation custom resource response template + */ +function responseTemplate(event: CloudFormationCustomResourceEvent, context: Context, physicalResourceId: string, reason?: string) { + return { + PhysicalResourceId: physicalResourceId, + LogicalResourceId: event.LogicalResourceId, + RequestId: event.RequestId, + StackId: event.StackId, + NoEcho: false, + Reason: reason || (`See the details in CloudWatch Log Stream: ${context.logStreamName}`), + }; +}; + +/** + * Sends response back to CloudFormation + */ +async function send(event: CloudFormationCustomResourceEvent, context: Context, status: Status, physicalResourceId: string, reason?: string): Promise { + const response: CloudFormationCustomResourceResponse = { + ...responseTemplate(event, context, physicalResourceId, reason), + Status: status, + }; + const responseBody = JSON.stringify(response); + const sendResult = await fetch(event.ResponseURL, { + method: 'PUT', + body: responseBody, + }); + console.log(`${sendResult.status}: ${sendResult.statusText}`); +}; +//#endregion + +/** + * Custom resource handler that starts a Step Function for long-running processes. + * Returns immediately after starting the execution - the Step Function handles completion signaling. + */ +export const handler: CloudFormationCustomResourceHandler = async (event, context) => { + console.log(event); + + // Generate unique physical resource ID for new resources, reuse for updates/deletes + const physicalResourceId = (event.RequestType === 'Update' || event.RequestType === 'Delete') + ? event.PhysicalResourceId + : randomUUID(); + + try { + // Extract required properties from custom resource + const stateMachineArn = event.ResourceProperties.StateMachineArn; + const waitConditionHandle = event.ResourceProperties.WaitConditionHandle; + + // Prepare payload for Step Function execution + const stepFunctionInput = { + RequestType: event.RequestType, + WaitConditionHandle: waitConditionHandle, + PhysicalResourceId: physicalResourceId, + LogicalResourceId: event.LogicalResourceId, + RequestId: event.RequestId, + StackId: event.StackId + }; + + // Start Step Function execution asynchronously + const startExecutionCommand = new StartExecutionCommand({ + stateMachineArn: stateMachineArn, + input: JSON.stringify(stepFunctionInput) + }); + + const executionResult = await sfnClient.send(startExecutionCommand); + console.log('Step Function execution started:', executionResult.executionArn); + + // Return success immediately - Step Function will signal completion via wait condition + await send(event, context, 'SUCCESS', physicalResourceId, 'Step Function execution started successfully'); + } + catch (e: any) { + console.error(e.message); + await send(event, context, 'FAILED', physicalResourceId, e.message); + } +} \ No newline at end of file diff --git a/cdk-custom-resource-with-wait-condition/lib/lambda/send-completion-signal.mts b/cdk-custom-resource-with-wait-condition/lib/lambda/send-completion-signal.mts new file mode 100644 index 0000000000..68a047eeb7 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/lib/lambda/send-completion-signal.mts @@ -0,0 +1,48 @@ +import { Handler } from "aws-lambda"; + +/** + * Status values for wait condition signals + */ +enum Status { + SUCCESS = 'SUCCESS', + FAILURE = 'FAILURE', +} + +/** + * Event payload for task completion signaling + */ +interface TaskCompletionEvent { + readonly waitConditionHandle: string; + readonly status: Status; + readonly uniqueId: string; + readonly data: string; + readonly reason: string; +} + +/** + * Sends completion signal to CloudFormation wait condition handle + */ +async function send(responseURL: string, status: Status, reason: string, uniqueId: string, data: string): Promise { + const response = { + Status: status, + Reason: reason, + UniqueId: uniqueId, + Data: data, + }; + const responseBody = JSON.stringify(response); + const sendResult = await fetch(responseURL, { + method: 'PUT', + body: responseBody, + }); + console.log(`${sendResult.status}: ${sendResult.statusText}`); +}; + +/** + * Lambda handler that sends completion signals to wait condition handles. + * Called by Step Functions when long-running processes complete. + */ +export const handler: Handler = async (event) => { + console.log(event); + const { waitConditionHandle, status, uniqueId, data, reason } = event; + await send(waitConditionHandle, status, reason, uniqueId, data); +} \ No newline at end of file diff --git a/cdk-custom-resource-with-wait-condition/lib/sfn/long-running-process.asl.json b/cdk-custom-resource-with-wait-condition/lib/sfn/long-running-process.asl.json new file mode 100644 index 0000000000..1462424b2b --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/lib/sfn/long-running-process.asl.json @@ -0,0 +1,29 @@ +{ + "Comment": "This is a demo Step Function immitating a long running process for managing a custom resource.", + "StartAt": "Custom Resource Management Placeholder", + "States": { + "Custom Resource Management Placeholder": { + "Type": "Wait", + "Seconds": 10, + "Next": "Send Completion Signal", + "Comment": "This wait task simulates some business logic applying changes to the environment." + }, + "Send Completion Signal": { + "Type": "Task", + "Resource": "arn:aws:states:::lambda:invoke", + "Output": "{% $states.result.Payload %}", + "Arguments": { + "FunctionName": "${SendCompletionSignalLambdaArn}", + "Payload": { + "waitConditionHandle": "{% $states.input.WaitConditionHandle %}", + "status": "SUCCESS", + "reason": "Configuration Complete", + "uniqueId": "ID1234", + "data": "Application has completed configuration." + } + }, + "End": true + } + }, + "QueryLanguage": "JSONata" +} \ No newline at end of file diff --git a/cdk-custom-resource-with-wait-condition/package.json b/cdk-custom-resource-with-wait-condition/package.json new file mode 100644 index 0000000000..8a36081e69 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/package.json @@ -0,0 +1,26 @@ +{ + "name": "cdk-custom-resource-with-wait-condition", + "version": "0.1.0", + "bin": { + "cdk-custom-resource-with-wait-condition": "bin/cdk-custom-resource-with-wait-condition.js" + }, + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "cdk": "cdk" + }, + "devDependencies": { + "@tsconfig/node22": "^22.0.2", + "@types/node": "24.10.0", + "aws-cdk": "2.1031.1", + "esbuild": "^0.25.12", + "ts-node": "^10.9.2", + "typescript": "~5.9.3" + }, + "dependencies": { + "@aws-sdk/client-sfn": "^3.922.0", + "@types/aws-lambda": "^8.10.157", + "aws-cdk-lib": "2.222.0", + "constructs": "^10.4.2" + } +} diff --git a/cdk-custom-resource-with-wait-condition/tsconfig.json b/cdk-custom-resource-with-wait-condition/tsconfig.json new file mode 100644 index 0000000000..4a95f7d3b9 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@tsconfig/node22", + "compilerOptions": { + "outDir": "./dist", + "inlineSourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "isolatedModules": true, + "rootDir": "." + }, + "exclude": ["cdk.out", "build", "node_modules", "dist", "**/__tests__/**", "**/*.test.ts", "**/*.spec.ts"] +} \ No newline at end of file From 2c9f3591abb7cc3644140f80c1fa31b6e39f88aa Mon Sep 17 00:00:00 2001 From: Dmitry Gulin Date: Mon, 8 Dec 2025 11:24:16 -0500 Subject: [PATCH 2/3] address review comments --- .../example-pattern.json | 18 ++++-------------- .../lib/demo-stack.ts | 2 +- .../package.json | 16 ++++++++-------- .../tsconfig.json | 2 +- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/cdk-custom-resource-with-wait-condition/example-pattern.json b/cdk-custom-resource-with-wait-condition/example-pattern.json index 7f97dce653..1c115b6748 100644 --- a/cdk-custom-resource-with-wait-condition/example-pattern.json +++ b/cdk-custom-resource-with-wait-condition/example-pattern.json @@ -7,19 +7,9 @@ "introBox": { "headline": "How it works", "text": [ - "AWS Lambda functions have a 15-minute execution timeout, limiting CloudFormation custom resources to short-running", - "operations. This pattern extends custom resource execution time to 12 hours using CloudFormation Wait Conditions.", - "The architecture uses four components working together: A Custom Resource Handler Lambda receives CloudFormation", - "lifecycle events and immediately starts a Step Function execution, then returns success to prevent timeouts.", - "The Step Function orchestrates the long-running process with built-in retry mechanisms and error handling.", - "When the process completes, a Completion Signal Handler Lambda sends success or failure signals to a Wait", - "Condition Handle URL. The Wait Condition blocks CloudFormation stack completion until receiving the signal.", - "This decouples custom resource lifecycle management from process execution, enabling asynchronous processing", - "with proper CloudFormation integration. The Step Function provides visual workflow monitoring and state management", - "while the Wait Condition ensures stack operations complete only after the long-running process finishes.", - "The pattern deploys two Lambda functions, one Step Function, a Wait Condition Handle, and a Wait Condition.", - "Use cases include database migrations, complex infrastructure provisioning, and third-party system integrations", - "that exceed Lambda's 15-minute limit." + "AWS Lambda functions have a 15-minute execution timeout, limiting CloudFormation custom resources to short-running operations. This pattern extends custom resource execution time to 12 hours using CloudFormation Wait Conditions. The architecture uses four components working together: A Custom Resource Handler Lambda receives CloudFormation lifecycle events and immediately starts a Step Function execution, then returns success to prevent timeouts. The Step Function orchestrates the long-running process with built-in retry mechanisms and error handling. When the process completes, a Completion Signal Handler Lambda sends success or failure signals to a Wait Condition Handle URL. The Wait Condition blocks CloudFormation stack completion until receiving the signal.", + "This decouples custom resource lifecycle management from process execution, enabling asynchronous processing with proper CloudFormation integration. The Step Function provides visual workflow monitoring and state management while the Wait Condition ensures stack operations complete only after the long-running process finishes. The pattern deploys two Lambda functions, one Step Function, a Wait Condition Handle, and a Wait Condition.", + "Use cases include database migrations, complex infrastructure provisioning, and third-party system integrations that exceed Lambda's 15-minute limit." ] }, "gitHub": { @@ -69,4 +59,4 @@ "linkedin": "dmitry-gulin" } ] -} +} \ No newline at end of file diff --git a/cdk-custom-resource-with-wait-condition/lib/demo-stack.ts b/cdk-custom-resource-with-wait-condition/lib/demo-stack.ts index 4a720d2419..9f611f9b9b 100644 --- a/cdk-custom-resource-with-wait-condition/lib/demo-stack.ts +++ b/cdk-custom-resource-with-wait-condition/lib/demo-stack.ts @@ -22,7 +22,7 @@ export class DemoStack extends Stack { const commonLambdaProps: Partial = { architecture: Architecture.ARM_64, loggingFormat: LoggingFormat.JSON, - runtime: Runtime.NODEJS_22_X, + runtime: Runtime.NODEJS_24_X, memorySize: 256, }; diff --git a/cdk-custom-resource-with-wait-condition/package.json b/cdk-custom-resource-with-wait-condition/package.json index 8a36081e69..42b0891ede 100644 --- a/cdk-custom-resource-with-wait-condition/package.json +++ b/cdk-custom-resource-with-wait-condition/package.json @@ -10,17 +10,17 @@ "cdk": "cdk" }, "devDependencies": { - "@tsconfig/node22": "^22.0.2", - "@types/node": "24.10.0", - "aws-cdk": "2.1031.1", - "esbuild": "^0.25.12", + "@tsconfig/node24": "^24.0.3", + "@types/node": "24.10.1", + "aws-cdk": "2.1033.0", + "esbuild": "^0.27.1", "ts-node": "^10.9.2", "typescript": "~5.9.3" }, "dependencies": { - "@aws-sdk/client-sfn": "^3.922.0", - "@types/aws-lambda": "^8.10.157", - "aws-cdk-lib": "2.222.0", - "constructs": "^10.4.2" + "@aws-sdk/client-sfn": "^3.946.0", + "@types/aws-lambda": "^8.10.159", + "aws-cdk-lib": "2.232.1", + "constructs": "^10.4.3" } } diff --git a/cdk-custom-resource-with-wait-condition/tsconfig.json b/cdk-custom-resource-with-wait-condition/tsconfig.json index 4a95f7d3b9..5f70dc8f7b 100644 --- a/cdk-custom-resource-with-wait-condition/tsconfig.json +++ b/cdk-custom-resource-with-wait-condition/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@tsconfig/node22", + "extends": "@tsconfig/node24", "compilerOptions": { "outDir": "./dist", "inlineSourceMap": true, From 1020beffa5084ca688a0b6f7df5cd88dc751bb8a Mon Sep 17 00:00:00 2001 From: Ben <9841563+bfreiberg@users.noreply.github.com> Date: Wed, 17 Dec 2025 14:44:16 +0100 Subject: [PATCH 3/3] Add final pattern file --- ...k-custom-resource-with-wait-condition.json | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 cdk-custom-resource-with-wait-condition/cdk-custom-resource-with-wait-condition.json diff --git a/cdk-custom-resource-with-wait-condition/cdk-custom-resource-with-wait-condition.json b/cdk-custom-resource-with-wait-condition/cdk-custom-resource-with-wait-condition.json new file mode 100644 index 0000000000..8a82d33cf2 --- /dev/null +++ b/cdk-custom-resource-with-wait-condition/cdk-custom-resource-with-wait-condition.json @@ -0,0 +1,91 @@ +{ + "title": "Custom resource with wait condition", + "description": "Use AWS CloudFormation Wait Conditions for long-running custom resources up to 12 hours", + "language": "TypeScript", + "level": "200", + "framework": "AWS CDK", + "introBox": { + "headline": "How it works", + "text": [ + "AWS Lambda functions have a 15-minute execution timeout, limiting CloudFormation custom resources to short-running operations. This pattern extends custom resource execution time to 12 hours using CloudFormation Wait Conditions. The architecture uses four components working together: A Custom Resource Handler Lambda receives CloudFormation lifecycle events and immediately starts a Step Function execution, then returns success to prevent timeouts. The Step Function orchestrates the long-running process with built-in retry mechanisms and error handling. When the process completes, a Completion Signal Handler Lambda sends success or failure signals to a Wait Condition Handle URL. The Wait Condition blocks CloudFormation stack completion until receiving the signal.", + "This decouples custom resource lifecycle management from process execution, enabling asynchronous processing with proper CloudFormation integration. The Step Function provides visual workflow monitoring and state management while the Wait Condition ensures stack operations complete only after the long-running process finishes. The pattern deploys two Lambda functions, one Step Function, a Wait Condition Handle, and a Wait Condition.", + "Use cases include database migrations, complex infrastructure provisioning, and third-party system integrations that exceed Lambda's 15-minute limit." + ] + }, + "gitHub": { + "template": { + "repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/cdk-custom-resource-with-wait-condition", + "templateURL": "serverless-patterns/cdk-custom-resource-with-wait-condition", + "projectFolder": "cdk-custom-resource-with-wait-condition", + "templateFile": "lib/demo-stack.ts" + } + }, + "resources": { + "bullets": [ + { + "text": "Custom resources", + "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html" + }, + { + "text": "Using wait conditions", + "link": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-waitcondition.html" + }, + { + "text": "Implementing long running deployments with AWS CloudFormation Custom Resources using AWS Step Functions", + "link": "https://aws.amazon.com/blogs/devops/implementing-long-running-deployments-with-aws-cloudformation-custom-resources-using-aws-step-functions/" + } + ] + }, + "deploy": { + "text": [ + "cdk deploy --require-approval never" + ] + }, + "testing": { + "text": [ + "Review Amazon CloudWatch logs for the Lambda functions and Step Function execution to confirm that the long-running process completed successfully and the wait condition was signaled." + ] + }, + "cleanup": { + "text": [ + "Delete the stack: cdk destroy -f." + ] + }, + "authors": [ + { + "name": "Dmitry Gulin", + "bio": "Senior Delivery Consultant, AWS.", + "linkedin": "dmitry-gulin" + } + ], + "patternArch": { + "icon1": { + "x": 20, + "y": 50, + "service": "cloudformation", + "label": "AWS CloudFormation" + }, + "icon2": { + "x": 50, + "y": 50, + "service": "lambda", + "label": "Custom resource" + }, + "icon3": { + "x": 80, + "y": 50, + "service": "sfn", + "label": "AWS Step Functions workflow" + }, + "line1": { + "from": "icon1", + "to": "icon2", + "label": "" + }, + "line2": { + "from": "icon2", + "to": "icon3", + "label": "" + } + } +}