Skip to content

WaitCondition ​

The WaitCondition resource allows you to create a wait condition in AWS CloudFormation that pauses the stack creation until a specified number of signals are received. This is useful for coordinating the completion of asynchronous tasks. You can learn more in the AWS CloudFormation WaitConditions documentation.

Minimal Example ​

Create a basic WaitCondition that waits for 2 signals and has a timeout of 300 seconds.

ts
import AWS from "alchemy/aws/control";

const waitCondition = await AWS.CloudFormation.WaitCondition("BasicWaitCondition", {
  Count: 2,
  Handle: "arn:aws:sns:us-east-1:123456789012:MyWaitConditionHandle",
  Timeout: "300"
});

Advanced Configuration ​

Create a WaitCondition that adopts an existing resource if it already exists.

ts
const advancedWaitCondition = await AWS.CloudFormation.WaitCondition("AdvancedWaitCondition", {
  Count: 3,
  Handle: "arn:aws:sns:us-east-1:123456789012:MyAdvancedWaitConditionHandle",
  Timeout: "600",
  adopt: true
});

WaitCondition with Custom Handle ​

Demonstrate how to set a custom handle for the WaitCondition, which can be useful for integrating with other AWS services.

ts
const customHandleWaitCondition = await AWS.CloudFormation.WaitCondition("CustomHandleWaitCondition", {
  Count: 1,
  Handle: "arn:aws:sns:us-east-1:123456789012:CustomHandle",
  Timeout: "120"
});

Handling Timeout Scenarios ​

Configure a WaitCondition with a specific timeout to manage potential delays in signal receipt.

ts
const timeoutWaitCondition = await AWS.CloudFormation.WaitCondition("TimeoutWaitCondition", {
  Count: 5,
  Handle: "arn:aws:sns:us-east-1:123456789012:TimeoutHandle",
  Timeout: "180"
});