aws-cdk-lib.aws_stepfunctions.StateMachine

class StateMachine (construct)

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

Implements IConstruct, IDependable, IResource, IStateMachine, IGrantable

Define a StepFunctions State Machine.

Example

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

const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
const inputArtifact = new codepipeline.Artifact();
const startState = new stepfunctions.Pass(this, 'StartState');
const simpleStateMachine  = new stepfunctions.StateMachine(this, 'SimpleStateMachine', {
  definition: startState,
});
const stepFunctionAction = new codepipeline_actions.StepFunctionInvokeAction({
  actionName: 'Invoke',
  stateMachine: simpleStateMachine,
  stateMachineInput: codepipeline_actions.StateMachineInput.filePath(inputArtifact.atPath('assets/input.json')),
});
pipeline.addStage({
  stageName: 'StepFunctions',
  actions: [stepFunctionAction],
});

Initializer

new StateMachine(scope: Construct, id: string, props: StateMachineProps)

Parameters

  • scope Construct
  • id string
  • props StateMachineProps

Construct Props

NameTypeDescription
definition?⚠️IChainableDefinition for this state machine.
definitionBody?DefinitionBodyDefinition for this state machine.
definitionSubstitutions?{ [string]: string }substitutions for the definition body aas a key-value map.
logs?LogOptionsDefines what execution history events are logged and where they are logged.
removalPolicy?RemovalPolicyThe removal policy to apply to state machine.
role?IRoleThe execution role for the state machine service.
stateMachineName?stringA name for the state machine.
stateMachineType?StateMachineTypeType of the state machine.
timeout?DurationMaximum run time for this state machine.
tracingEnabled?booleanSpecifies whether Amazon X-Ray tracing is enabled for this state machine.

definition?⚠️

⚠️ Deprecated: use definitionBody: DefinitionBody.fromChainable()

Type: IChainable (optional)

Definition for this state machine.


definitionBody?

Type: DefinitionBody (optional)

Definition for this state machine.


definitionSubstitutions?

Type: { [string]: string } (optional)

substitutions for the definition body aas a key-value map.


logs?

Type: LogOptions (optional, default: No logging)

Defines what execution history events are logged and where they are logged.


removalPolicy?

Type: RemovalPolicy (optional, default: RemovalPolicy.DESTROY)

The removal policy to apply to state machine.


role?

Type: IRole (optional, default: A role is automatically created)

The execution role for the state machine service.


stateMachineName?

Type: string (optional, default: A name is automatically generated)

A name for the state machine.


stateMachineType?

Type: StateMachineType (optional, default: StateMachineType.STANDARD)

Type of the state machine.


timeout?

Type: Duration (optional, default: No timeout)

Maximum run time for this state machine.


tracingEnabled?

Type: boolean (optional, default: false)

Specifies whether Amazon X-Ray tracing is enabled for this state machine.

Properties

NameTypeDescription
envResourceEnvironmentThe environment this resource belongs to.
grantPrincipalIPrincipalThe principal this state machine is running as.
nodeNodeThe tree node.
roleIRoleExecution role of this state machine.
stackStackThe stack in which this resource is defined.
stateMachineArnstringThe ARN of the state machine.
stateMachineNamestringThe name of the state machine.
stateMachineTypeStateMachineTypeType of the state machine.

env

Type: ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


grantPrincipal

Type: IPrincipal

The principal this state machine is running as.


node

Type: Node

The tree node.


role

Type: IRole

Execution role of this state machine.


stack

Type: Stack

The stack in which this resource is defined.


stateMachineArn

Type: string

The ARN of the state machine.


stateMachineName

Type: string

The name of the state machine.


stateMachineType

Type: StateMachineType

Type of the state machine.

Methods

NameDescription
addToRolePolicy(statement)Add the given statement to the role's policy.
applyRemovalPolicy(policy)Apply the given removal policy to this resource.
grant(identity, ...actions)Grant the given identity custom permissions.
grantExecution(identity, ...actions)Grant the given identity permissions on all executions of the state machine.
grantRead(identity)Grant the given identity permissions to read results from state machine.
grantStartExecution(identity)Grant the given identity permissions to start an execution of this state machine.
grantStartSyncExecution(identity)Grant the given identity permissions to start a synchronous execution of this state machine.
grantTaskResponse(identity)Grant the given identity task response permissions on a state machine.
metric(metricName, props?)Return the given named metric for this State Machine's executions.
metricAborted(props?)Metric for the number of executions that were aborted.
metricFailed(props?)Metric for the number of executions that failed.
metricStarted(props?)Metric for the number of executions that were started.
metricSucceeded(props?)Metric for the number of executions that succeeded.
metricThrottled(props?)Metric for the number of executions that were throttled.
metricTime(props?)Metric for the interval, in milliseconds, between the time the execution starts and the time it closes.
metricTimedOut(props?)Metric for the number of executions that timed out.
toString()Returns a string representation of this construct.
static fromStateMachineArn(scope, id, stateMachineArn)Import a state machine.
static fromStateMachineName(scope, id, stateMachineName)Import a state machine via resource name.

addToRolePolicy(statement)

public addToRolePolicy(statement: PolicyStatement): void

Parameters

  • statement PolicyStatement

Add the given statement to the role's policy.


applyRemovalPolicy(policy)

public applyRemovalPolicy(policy: RemovalPolicy): void

Parameters

  • policy RemovalPolicy

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).


grant(identity, ...actions)

public grant(identity: IGrantable, ...actions: string[]): Grant

Parameters

  • identity IGrantable
  • actions string

Returns

  • Grant

Grant the given identity custom permissions.


grantExecution(identity, ...actions)

public grantExecution(identity: IGrantable, ...actions: string[]): Grant

Parameters

  • identity IGrantable
  • actions string

Returns

  • Grant

Grant the given identity permissions on all executions of the state machine.


grantRead(identity)

public grantRead(identity: IGrantable): Grant

Parameters

  • identity IGrantable

Returns

  • Grant

Grant the given identity permissions to read results from state machine.


grantStartExecution(identity)

public grantStartExecution(identity: IGrantable): Grant

Parameters

  • identity IGrantable

Returns

  • Grant

Grant the given identity permissions to start an execution of this state machine.


grantStartSyncExecution(identity)

public grantStartSyncExecution(identity: IGrantable): Grant

Parameters

  • identity IGrantable

Returns

  • Grant

Grant the given identity permissions to start a synchronous execution of this state machine.


grantTaskResponse(identity)

public grantTaskResponse(identity: IGrantable): Grant

Parameters

  • identity IGrantable

Returns

  • Grant

Grant the given identity task response permissions on a state machine.


metric(metricName, props?)

public metric(metricName: string, props?: MetricOptions): Metric

Parameters

  • metricName string
  • props MetricOptions

Returns

  • Metric

Return the given named metric for this State Machine's executions.


metricAborted(props?)

public metricAborted(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that were aborted.


metricFailed(props?)

public metricFailed(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that failed.


metricStarted(props?)

public metricStarted(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that were started.


metricSucceeded(props?)

public metricSucceeded(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that succeeded.


metricThrottled(props?)

public metricThrottled(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that were throttled.


metricTime(props?)

public metricTime(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the interval, in milliseconds, between the time the execution starts and the time it closes.


metricTimedOut(props?)

public metricTimedOut(props?: MetricOptions): Metric

Parameters

  • props MetricOptions

Returns

  • Metric

Metric for the number of executions that timed out.


toString()

public toString(): string

Returns

  • string

Returns a string representation of this construct.


static fromStateMachineArn(scope, id, stateMachineArn)

public static fromStateMachineArn(scope: Construct, id: string, stateMachineArn: string): IStateMachine

Parameters

  • scope Construct
  • id string
  • stateMachineArn string

Returns

  • IStateMachine

Import a state machine.


static fromStateMachineName(scope, id, stateMachineName)

public static fromStateMachineName(scope: Construct, id: string, stateMachineName: string): IStateMachine

Parameters

  • scope Construct
  • id string
  • stateMachineName string

Returns

  • IStateMachine

Import a state machine via resource name.