Как передать ввод через метод Inputpath () (объект или параметр) в состояние машины состояний aws с помощью Java - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу передать входной объект в метод 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 ;

    }
...