aws-cdk-lib.aws_stepfunctions.Fail

class Fail (construct)

LanguageType name
.NETAmazon.CDK.AWS.StepFunctions.Fail
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awsstepfunctions#Fail
Javasoftware.amazon.awscdk.services.stepfunctions.Fail
Pythonaws_cdk.aws_stepfunctions.Fail
TypeScript (source)aws-cdk-lib » aws_stepfunctions » Fail

Implements IConstruct, IDependable, IChainable

Define a Fail state in the state machine.

Reaching a Fail state terminates the state execution in failure.

Example

import * as lambda from 'aws-cdk-lib/aws-lambda';

declare const submitLambda: lambda.Function;
declare const getStatusLambda: lambda.Function;

const submitJob = new tasks.LambdaInvoke(this, 'Submit Job', {
  lambdaFunction: submitLambda,
  // Lambda's result is in the attribute `guid`
  outputPath: '$.guid',
});

const waitX = new sfn.Wait(this, 'Wait X Seconds', {
  time: sfn.WaitTime.secondsPath('$.waitSeconds'),
});

const getStatus = new tasks.LambdaInvoke(this, 'Get Job Status', {
  lambdaFunction: getStatusLambda,
  // Pass just the field named "guid" into the Lambda, put the
  // Lambda's result in a field called "status" in the response
  inputPath: '$.guid',
  outputPath: '$.status',
});

const jobFailed = new sfn.Fail(this, 'Job Failed', {
  cause: 'AWS Batch Job Failed',
  error: 'DescribeJob returned FAILED',
});

const finalStatus = new tasks.LambdaInvoke(this, 'Get Final Job Status', {
  lambdaFunction: getStatusLambda,
  // Use "guid" field as input
  inputPath: '$.guid',
  outputPath: '$.Payload',
});

const definition = submitJob
  .next(waitX)
  .next(getStatus)
  .next(new sfn.Choice(this, 'Job Complete?')
    // Look at the "status" field
    .when(sfn.Condition.stringEquals('$.status', 'FAILED'), jobFailed)
    .when(sfn.Condition.stringEquals('$.status', 'SUCCEEDED'), finalStatus)
    .otherwise(waitX));

new sfn.StateMachine(this, 'StateMachine', {
  definition,
  timeout: Duration.minutes(5),
});

Initializer

new Fail(scope: Construct, id: string, props?: FailProps)

Parameters

  • scope Construct
  • id string — Descriptive identifier for this chainable.
  • props FailProps

Construct Props

NameTypeDescription
cause?stringA description for the cause of the failure.
comment?stringAn optional description for this state.
error?stringError code used to represent this failure.

cause?

Type: string (optional, default: No description)

A description for the cause of the failure.


comment?

Type: string (optional, default: No comment)

An optional description for this state.


error?

Type: string (optional, default: No error code)

Error code used to represent this failure.

Properties

NameTypeDescription
endStatesINextable[]Continuable states of this Chainable.
idstringDescriptive identifier for this chainable.
nodeNodeThe tree node.
startStateStateFirst state of this Chainable.
stateIdstringTokenized string that evaluates to the state's ID.

endStates

Type: INextable[]

Continuable states of this Chainable.


id

Type: string

Descriptive identifier for this chainable.


node

Type: Node

The tree node.


startState

Type: State

First state of this Chainable.


stateId

Type: string

Tokenized string that evaluates to the state's ID.

Methods

NameDescription
addPrefix(x)Add a prefix to the stateId of this state.
bindToGraph(graph)Register this state as part of the given graph.
toStateJson()Return the Amazon States Language object for this state.
toString()Returns a string representation of this construct.

addPrefix(x)

public addPrefix(x: string): void

Parameters

  • x string

Add a prefix to the stateId of this state.


bindToGraph(graph)

public bindToGraph(graph: StateGraph): void

Parameters

  • graph StateGraph

Register this state as part of the given graph.

Don't call this. It will be called automatically when you work with states normally.


toStateJson()

public toStateJson(): json

Returns

  • json

Return the Amazon States Language object for this state.


toString()

public toString(): string

Returns

  • string

Returns a string representation of this construct.