Specifying Execution Name for Nested Step Functions

0

Hi. I'm using nested Step Function executions using the Run Job (sync) integration. The default child Execution Name generated by AWS is a generic UUID. I'd like to specify my own (more meaningful) execution name, by passing it as an input attribute to the parent Step Function.

I tried to use a "Name": "$.executionName" parameter in the integration task, but I got an Invalid Name error when starting the child Step Function execution. I passed an alphanumeric/underscore input value for "executionName", which should be legal as a Step Function execution name.

I suspect Step Functions treats the "Name" parameter as a literal value and doesn't expand the reference, and tries to create an execution with the literal name "$.executionName". This raises the question, how else can I specify dynamic execution names for nested Step Functions? If the parameter is a literal string, it'll only work once for a single execution, which doesn't make much sense.

PS. I'm using AWS CDK and the StepFunctionsStartExecution construct.

Clouden
asked 3 years ago2509 views
2 Answers
0

I got the answer from https://twitter.com/notadamwong/status/1327475962540298241

You can use "Name.$" instead of "Name" to expand the reference to another input field.

I was confused by the AWS CDK StepFunctionsStartExecution construct's name property, which expands to "Name" behind the scenes. You have to create a custom construct in order to add a "Name.$" field.

Clouden
answered 3 years ago
0

Another tip from https://twitter.com/notadamwong/status/1327665864288583682

In AWS CDK you can use JsonPath.stringAt('$.executionName') as the name property, to automatically add the ".$" suffix to Name.

Clouden
answered 3 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions