Class CustomState
java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.services.stepfunctions.State
software.amazon.awscdk.services.stepfunctions.CustomState
- All Implemented Interfaces:
IChainable
,INextable
,software.amazon.jsii.JsiiSerializable
,software.constructs.IConstruct
,software.constructs.IDependable
@Generated(value="jsii-pacmak/1.104.0 (build e79254c)",
date="2024-12-06T14:43:27.714Z")
@Stability(Stable)
public class CustomState
extends State
implements IChainable, INextable
State defined by supplying Amazon States Language (ASL) in the state machine.
Example:
import software.amazon.awscdk.services.dynamodb.*; // create a table Table table = Table.Builder.create(this, "montable") .partitionKey(Attribute.builder() .name("id") .type(AttributeType.STRING) .build()) .build(); Pass finalStatus = new 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 Map<String, Object> stateJson = Map.of( "Type", "Task", "Resource", "arn:aws:states:::dynamodb:putItem", "Parameters", Map.of( "TableName", table.getTableName(), "Item", Map.of( "id", Map.of( "S", "MyEntry"))), "ResultPath", null); // custom state which represents a task to insert data into DynamoDB CustomState custom = CustomState.Builder.create(this, "my custom task") .stateJson(stateJson) .build(); // catch errors with addCatch Pass errorHandler = new Pass(this, "handle failure"); custom.addCatch(errorHandler); // retry the task if something goes wrong custom.addRetry(RetryProps.builder() .errors(List.of(Errors.ALL)) .interval(Duration.seconds(10)) .maxAttempts(5) .build()); Chain chain = Chain.start(custom).next(finalStatus); StateMachine sm = StateMachine.Builder.create(this, "StateMachine") .definitionBody(DefinitionBody.fromChainable(chain)) .timeout(Duration.seconds(30)) .comment("a super cool state machine") .build(); // don't forget permissions. You need to assign them table.grantWriteData(sm);
-
Nested Class Summary
Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationMode
Nested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.IChainable
IChainable.Jsii$Default, IChainable.Jsii$Proxy
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.INextable
INextable.Jsii$Default, INextable.Jsii$Proxy
-
Constructor Summary
ModifierConstructorDescriptionprotected
CustomState
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
CustomState
(software.amazon.jsii.JsiiObjectRef objRef) CustomState
(software.constructs.Construct scope, String id, CustomStateProps props) -
Method Summary
Modifier and TypeMethodDescriptionaddCatch
(IChainable handler) Add a recovery handler for this state.addCatch
(IChainable handler, CatchProps props) Add a recovery handler for this state.addRetry()
Add retry configuration for this state.addRetry
(RetryProps props) Add retry configuration for this state.Continuable states of this Chainable.next
(IChainable next) Continue normal execution with the given state.com.fasterxml.jackson.databind.node.ObjectNode
Returns the Amazon States Language object for this state.Methods inherited from class software.amazon.awscdk.services.stepfunctions.State
addBranch, addChoice, addChoice, addItemProcessor, addItemProcessor, addIterator, addPrefix, bindToGraph, filterNextables, findReachableEndStates, findReachableEndStates, findReachableStates, findReachableStates, getBranches, getComment, getDefaultChoice, getId, getInputPath, getIteration, getOutputPath, getParameters, getProcessor, getProcessorConfig, getProcessorMode, getResultPath, getResultSelector, getStartState, getStateId, getStateName, makeDefault, makeNext, prefixStates, renderBranches, renderChoices, renderInputOutput, renderItemProcessor, renderIterator, renderNextEnd, renderResultSelector, renderRetryCatch, setDefaultChoice, setIteration, setProcessor, setProcessorConfig, setProcessorMode, validateState, whenBoundToGraph
Methods inherited from class software.constructs.Construct
getNode, isConstruct, toString
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface software.amazon.awscdk.services.stepfunctions.IChainable
getId, getStartState
Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Constructor Details
-
CustomState
protected CustomState(software.amazon.jsii.JsiiObjectRef objRef) -
CustomState
protected CustomState(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
CustomState
@Stability(Stable) public CustomState(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CustomStateProps props) - Parameters:
scope
- This parameter is required.id
- Descriptive identifier for this chainable. This parameter is required.props
- This parameter is required.
-
-
Method Details
-
addCatch
@Stability(Stable) @NotNull public CustomState addCatch(@NotNull IChainable handler, @Nullable CatchProps props) Add a recovery handler for this state.When a particular error occurs, execution will continue at the error handler instead of failing the state machine execution.
- Parameters:
handler
- This parameter is required.props
-
-
addCatch
Add a recovery handler for this state.When a particular error occurs, execution will continue at the error handler instead of failing the state machine execution.
- Parameters:
handler
- This parameter is required.
-
addRetry
Add retry configuration for this state.This controls if and how the execution will be retried if a particular error occurs.
- Parameters:
props
-
-
addRetry
Add retry configuration for this state.This controls if and how the execution will be retried if a particular error occurs.
-
next
Continue normal execution with the given state. -
toStateJson
@Stability(Stable) @NotNull public com.fasterxml.jackson.databind.node.ObjectNode toStateJson()Returns the Amazon States Language object for this state.- Specified by:
toStateJson
in classState
-
getEndStates
Continuable states of this Chainable.- Specified by:
getEndStates
in interfaceIChainable
- Specified by:
getEndStates
in classState
-