在本地测试时,使用docker镜像amazon/aws-stepfunctions-local创建"Map"状态的step-functions状态机时,会出现InvalidDefinition错误。

0

【以下的问题经过翻译处理】 大家好,

我正在本地运行amazon/aws-stepfunctions-local docker镜像,并创建一个包含Map状态的状态机。但是创建失败,出现以下错误消息:

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''

是否可以为本地测试在docker-image amazon/aws-stepfunctions-local中创建具有Map状态的状态机?

更详细的描述如下:

我正在执行以下操作:

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 


# 在另一个终端中
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"

其中src/test/test.json包含以下内容:

{
  "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
0

【以下的回答经过翻译处理】 你好,

我们肯定可以在Docker镜像amazon / aws-stepfunctions-local中创建带有Map状态的状态机。然而,在使用最新版本1.12.0进行测试时[1],我确认Step Function Local尚未移动到新的模式,因此“ItemProcessor”当前不受支持。

作为替代方案,您可以在状态机定义中使用“Iterator”,如下所示:

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

我已向服务团队创建了一个功能请求。我无法评论此功能何时可能发布,建议您密切关注我们的“What's New” [2]和博客 [3]页面,以获取任何新功能公告。

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

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

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

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