在本地测试时,使用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
	  }
  }
}

profile picture
专家
已提问 5 个月前10 查看次数
1 回答
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
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则