aws-cdk-lib.aws_stepfunctions.CustomStateProps

interface CustomStateProps

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

Properties for defining a custom state definition.

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);

Properties

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