【问题标题】:API Gateway is Overwriting AWS Step Functions State OutputAPI Gateway 正在覆盖 AWS Step Functions 状态输出
【发布时间】:2018-09-19 12:29:24
【问题描述】:

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

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 link was clicked”。 (集成请求的主体映射模板)。

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

【问题讨论】:

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


    【解决方案1】:

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

    看看Amazon State Language: Path

    【讨论】:

      猜你喜欢
      • 2020-09-05
      • 2017-05-02
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2020-05-12
      • 1970-01-01
      相关资源
      最近更新 更多