【问题标题】:Using the Output JSON data returned from a nested Step Function使用从嵌套 Step Function 返回的输出 JSON 数据
【发布时间】:2019-08-29 07:00:04
【问题描述】:

我正在创建一个带有嵌套 Step Functions (SF) 的 POC,并遇到了以下问题。

  • 我的 SF A 有一个同步任务,它开始执行 SF B(使用 recently announced syntax)并等待它完成。
  • SF B 返回一个有效的 JSON 输出
  • 在 SF A 中,我可以看到(从调用 SF B 的任务的输出)返回的正确字段。例如状态、ExecutionArn 以及输出。
  • 然后我想在 SF A 中执行一个使用从 SF B 返回的字段的选择任务。但是从 SF B 返回的输出字段中的 json 是转义 json,因此 jsonPath 无法从中提取字段嵌套 json 的输出数据。

在这种情况下是否有遗漏或推荐的方法?我可以在 lambda 或其他东西中“处理”转义的 json 字符串,但在选择任务中使用它......但这有点违背了嵌套 SF 工作流程的要点。

任何帮助表示赞赏。

【问题讨论】:

  • 您找到解决方案了吗?我正在构建一些嵌套的工作流程,并且存在同样的问题。我可以创建一个解析字符串的 ECS 活动,但这感觉很糟糕。
  • 不,恐怕不会。我们当时正在评估 Step Functions,并没有采取任何进一步的措施
  • 感谢您的回答。我提交了一张支持票询问它,他们的回复说这是一个已知的功能请求,并且它在路线图上,尽管他们无法给我发布日期。
  • @mbragg02 同意它不太理想,但目前看来,在步进函数之间解析输出的最佳方法是使用 lambda。否则,也许将输出(也许您希望保留此信息以用于审计目的)存储在链接到执行 ID 的 dynamodb 中,然后您可以在步骤之间读取它?

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


【解决方案1】:

自从您提出问题以来,不确定它是否是新的,但答案在您提供的链接中: 在任务资源字段中使用“arn:aws:states:::states:startExecution.sync:2”而不是“arn:aws:states:::states:startExecution.sync”

【讨论】:

【解决方案2】:

我遇到了同样的问题。我首先使用了 "OutputPath": "$.Output" 并返回了转义的 json。我删除了它并添加了“ResultPath”:“$.Output”,这有效,它将输出作为 json 返回,包括转义版本。在 AWS 解决这个问题之前,暂时还可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多