API 网关正在覆盖 AWS Step Functions 状态输出

问题描述 投票:0回答:2

我正在按照这篇文章为我的状态机实施手动批准步骤:

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"}。输入被传递到手动步骤

-lambda 工作线程通过使用手动步骤的 ARN 调用 GetActivityTask 来轮询活动任务

-工作通过代币返还给工人

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

这东西运转得很漂亮!单击电子邮件中相应的 URL 会使状态机分别进入下一个状态或失败。我唯一的问题是:提供给手动步骤的输入被 API 网关 GET 覆盖。因此基本上,手动步骤的输入是上面的 JSON blob,但输出类似于:“单击了批准链接”。 (集成请求的正文映射模板)。

那么我怎样才能让我的手动步骤将原始输入作为输出传递呢?

amazon-web-services aws-api-gateway aws-step-functions
2个回答
1
投票

您应该在州的描述中设置 ApprovalState 的

ResultPath
。 默认情况下,它写入路径的“根”($),但您可以将其写入
$.whatever
,将
"ResultPath": "$.whatever"
添加到您所在州的描述中。

看看亚马逊状态语言:路径


0
投票

我遇到了完全相同的问题,上面的答案没有解决它。有什么建议吗?

© www.soinside.com 2019 - 2024. All rights reserved.