aws-cdk-lib.aws_stepfunctions.CustomState

class CustomState (construct)

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

Implements IConstruct, IDependable, IChainable, INextable

State defined by supplying Amazon States Language (ASL) in the state machine.

Example

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

// create a table
const table = new dynamodb.Table(this, 'montable', {
  partitionKey: {
    name: 'id',
    type: dynamodb.AttributeType.STRING,
  },
});

const finalStatus = new sfn.Pass(this, 'final step');

// States language JSON to put an item into DynamoDB
// snippet generated from https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-code-snippet.html#tutorial-code-snippet-1
const stateJson = {
  Type: 'Task',
  Resource: 'arn:aws:states:::dynamodb:putItem',
  Parameters: {
    TableName: table.tableName,
    Item: {
      id: {
        S: 'MyEntry',
      },
    },
  },
  ResultPath: null,
};

// custom state which represents a task to insert data into DynamoDB
const custom = new sfn.CustomState(this, 'my custom task', {
  stateJson,
});

const chain = sfn.Chain.start(custom)
  .next(finalStatus);

const sm = new sfn.StateMachine(this, 'StateMachine', {
  definition: chain,
  timeout: Duration.seconds(30),
});

// don't forget permissions. You need to assign them
table.grantWriteData(sm);

Initializer

new CustomState(scope: Construct, id: string, props: CustomStateProps)

Parameters

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

Construct Props

NameTypeDescription
stateJson{ [string]: any }Amazon States Language (JSON-based) definition of the state.

stateJson

Type: { [string]: any }

Amazon States Language (JSON-based) definition of the state.

See also: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html

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.
next(next)Continue normal execution with the given state.
toStateJson()Returns 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.


next(next)

public next(next: IChainable): Chain

Parameters

  • next IChainable

Returns

  • Chain

Continue normal execution with the given state.


toStateJson()

public toStateJson(): json

Returns

  • json

Returns the Amazon States Language object for this state.


toString()

public toString(): string

Returns

  • string

Returns a string representation of this construct.