API网关正在覆盖AWS步骤功能状态输出

时间:2018-04-10 02:15:14

标签: amazon-web-services aws-api-gateway aws-step-functions

我正在关注本文,为我的状态机实现手动审批步骤:

https://aws.amazon.com/blogs/compute/implementing-serverless-manual-approval-steps-in-aws-step-functions-and-amazon-api-gateway/

以下是工作流程:

- 执行以JSON输入开始。类似{" instance-id":" i-xxxxxxx"," action":" stop"}。输入传递给手动步骤

-a lambda worker通过使用手动步骤的ARN调用GetActivityTask来轮询活动任务

- 工作用令牌

返回给工人

- worker函数使用令牌使用SES生成电子邮件。电子邮件中的URL使用令牌调用SendTaskSuccess或SendTaskFailure。

事情很美妙!单击电子邮件中的相应URL会使状态机分别进入下一个状态或失败。我唯一的问题是:提供给手动步骤的输入被API网关GET覆盖。所以基本上,手动步骤的输入是上面的JSON blob,但输出类似于:"点击了Approve链接。" (集成请求的正文映射模板)。

那我怎么能这样做,所以我的手动步骤将原始输入作为输出传递?enter image description here

1 个答案:

答案 0 :(得分:0)

您应该在状态说明中设置ApprovalState的ResultPath。 默认情况下,它写入路径的“根”($),但您可以将其写入 通过在您所在州的描述中添加$.whatever "ResultPath": "$.whatever"

看看Amazon State Language: Path