“ stateMachineArn”处的null值未能满足约束:成员不能为null

时间:2019-06-17 22:29:54

标签: javascript aws-api-gateway aws-step-functions

我遵循了AWS Step Functions,并添加了AWS Step Functions。

但是当我使用下面的代码尝试调用“步骤函数”时,

import { ajax } from 'rxjs/ajax';

// ...
ajax.post(
  url,
  {
    input: JSON.stringify({
      formId: action.payload.formId,
      fields: action.payload.fields,
    }),
  },
  { 'Content-Type': 'application/json' },
).pipe(
  map(res => actions.sendRequestSucceed(res)),
  catchError(actions.sendRequestFailed),
)

它返回错误:

response: {
    message: "1 validation error detected: Value null at 'stateMachineArn' failed to satisfy constraint: Member must not be null"
    __type: "com.amazon.coral.validate#ValidationException"
}

1 个答案:

答案 0 :(得分:0)

花点时间找出答案。

首先需要设置API网关,您可以按照this tutorial进行操作。

enter image description here

请注意,操作StartExecution

这里是StartExecution API document

{
   "input": "string",
   "name": "string", (Optional)
   "stateMachineArn": "string"
}

添加stateMachineArn后,可以在您的“步骤功能->状态机”中找到

enter image description here

在代码中

ajax.post(
  url,
  {
    input: JSON.stringify({
      formId: action.payload.formId,
      fields: action.payload.fields,
    }),
    stateMachineArn: 'arn:aws:states:us-west-2:000000000000:stateMachine:SendFormStateMachine',
  },
  // ...

然后它起作用。

也请注意StartExecution input仅接受字符串。如果需要传递对象,则可以使用JSON.stringify