InvalidDefinition error when creating a step-functions state machine with a "Map" state in the docker image amazon/aws-stepfunctions-local for local testing

4

Hi everyone,

I am running the amazon/aws-stepfunctions-local docker image locally and creating a state-machine which contains a Map state. But the creation fails with the following error message:

An error occurred (InvalidDefinition) when calling the CreateStateMachine operation: Invalid State Machine Definition: ''SCHEMA_VALIDATION_FAILED: These fields are required: [Iterator] at /States/MapState', 'SCHEMA_VALIDATION_FAILED: Field 'ItemProcessor' is not supported at /States/MapState''

Is it possible to create a state-machine with a Map state in the docker-image amazon/aws-stepfunctions-local for local testing?

More dailed description below:

I am doing the following:

docker run -d --name workflow_test -p 8083:8083 \
	--mount type=bind,readonly,source="$PWD/src/test/WorkflowTest_Mock.json",destination=/home/StepFunctionsLocal/MockConfigFile.json \
	-e SFN_MOCK_CONFIG="/home/StepFunctionsLocal/MockConfigFile.json" amazon/aws-stepfunctions-local 


# In another terminal
aws stepfunctions create-state-machine \
    --endpoint http://localhost:8083 \
    --definition "$(cat src/test/test.json)" \
    --name "LambdaSQSIntegration" --role-arn "arn:aws:iam::123456789012:role/service-role/LambdaSQSIntegration"

where src/test/test.json contains the following:

{
  "Comment":"Test",
  "StartAt":"MapState",
  "States":{
	  "MapState": {
		"Type": "Map",
		"ItemProcessor": {
		  "ProcessorConfig": {
			"Mode": "INLINE"
		  },
		  "StartAt": "MyTask",
		  "States": {
			"MyTask": {
			  "Type": "Task",
			  "Resource": "<my-arn>", # substituted
			  "End": true
			}
		  }
		},
		"End": true
	  }
  }
}
1 Antwort
2
Akzeptierte Antwort

Hello,

We can definitely create a state-machine with Map state in the docker-image amazon/aws-stepfunctions-local. However, upon testing it with the latest Version: 1.12.0 [1], I could confirm that Step Function Local is not yet moved to new schema and therefore, "ItemProcessor" is currently not supported.

Alternately, you may use "Iterator" in the state machine definition as follows :

{
  "Comment":"Test",
  "StartAt":"MapState",
  "States":{
	  "MapState": {
		"Type": "Map",
                "Iterator": {
		  "StartAt": "MyTask",
		  "States": {
			"MyTask": {
			  "Type": "Task",
			  "Resource": "<my-arn>", # substituted
			  "End": true
			  }
		     }
		  },
		"End": true
	    }
     }
}

I have created a feature request to the service team. While I am unable to comment on if/when this feature may get released, I request you to keep an eye on our What's New[2] and Blog[3] pages for any new feature announcements.

[1] https://hub.docker.com/r/amazon/aws-stepfunctions-local/tags

[2] https://aws.amazon.com/new/

[3] https://aws.amazon.com/blogs/aws/

AWS
beantwortet vor einem Jahr
profile picture
EXPERTE
überprüft vor 21 Tagen
  • Is there a direct link to the feature request that we can follow? Our team is also experiencing this issue.

  • As above, we're experiencing the same issue, tested with the latest amazon/aws-stepfunctions-local, 1.12.2. The fields were deprecated in Dec 2022 so it would be great to use the current language. Beyond name changes (Iterator to ItemProcessor and Parameters to ItemSelector), this issue means that it isn't possible to use Distributed Maps. Any current config needs to be backported to remove invalid fields (e.g. ProcessorConfig doesn't exist under Iterator) & as docs have been removed for Iterator/Parameters, you have to hunt for old docs or guess (!) the syntax based on old & current examples.

  • Is it possible to get an update as to where this is at and a link to the feature request as @jim-salyer-efleets mentioned above? A changelog/release notes for https://hub.docker.com/r/amazon/aws-stepfunctions-local would be really helpful - otherwise we as users are flying blind as to what's changed and when. I appreciate the links you mentioned @Akanksha_T but there's no mention of aws-stepfunctions-local in any past news article or blog post, which makes it seem unlikely there will be any time soon.

  • Why is there no public issue tracker for this tool?

    A year later it still has no support for current Map state syntax.

    The tool delivers poor value if it's not actively supported, and the tool is pretty vital for serious users of Step Functions.

  • Hitting this same problem. Is there a workaround for aws-stepfunctions-local 1.14 not understanding Item-Reader?

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen