Я хочу передать входной объект в метод statemachine (построенный с использованием Java) (лямбда) как inputpath
, используя метод inputpath
, а затем выполнить машину. Но не в состоянии сделать это. Когда я передаю строку JSON методу inputpath
, я получаю сообщение об ошибке -
Exception in thread "main" com.amazonaws.services.stepfunctions.model.InvalidDefinitionException: Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: Value must be a valid JSONPath. at /States/choiceselector/InputPath' (Service: AWSStepFunctions; Status Code: 400; Error Code: InvalidDefinition; Request ID: 4e6436da-5d52-11e9-affc-d4r5554y64hfd)
Ввод, который я хочу отправить в statemachine через inputPath
ниже (человек JSON / объект)
String personJSON = "{ "name": "alex", "city": "NY"}";
Я также попробовал ниже формат json-
"{\n \"name\": "alex",\n \"city\": 1106\n}"
но все равно получаю ошибку.
Мой код -
StateMachine helloworldStateMachine = StateMachine.builder()
.comment("A Hello World example of the Amazon States Language using an AWS Lambda Function")
.startAt("choiceselector")
.state("choiceselector", TaskState.builder().resource("ARN of my plain java/lambda function").inputPath(personJSON) .transition(NextStateTransition.builder().nextStateName("GoToState"))) ... and so on
мой метод lambda / plain java приведен ниже - >>
public StepOutput choice(Person person) {
System.out.println( " input param ***"+person.getName());
StepOutput so = new StepOutput();
so.setMessage("Hi -"+person.getName());
return so ;
}