首页 > 解决方案 > AWS Step Function:状态 A 将 lambda 输出传递给状态 B

问题描述

我的 AWS lambda 函数check-version-lambda返回 {"latest": "yes"}or {"latest": "no"}

我有下面的 AWS step 函数,将上面的结果传递到下一个状态。

下一个状态process_version是选择状态,我如何检索里面的输入Choices?填什么<???>

  {
      "StartAt": "check_version",
      "States": {
        "check_version": {
          "Type": "Task",
          "Resource": "arn:aws:lambda:us-east-1:000:function:check-version-lambda",
          "OutputPath": "$.latest",
          "Next": "process_version"
        },
        "process_version": {
          "Type": "Choice",
          "Choices": [
            {
              "Variable": "<???>",
              "StringEquals": "yes",
              "Next": "next_state"
            },
            {
              "Variable": "<???>",
              "StringEquals": "no",
              "Next": "next_state"
            }
          ],
          "Default": "next_state"
        }
      }
    }

标签: aws-step-functions

解决方案


在您的“check_version”状态下,您可以使用

"ResultPath": "$.result",
"OutputPath": "$.result",

显式配置 step 函数以将 lambda 的结果(例如{"latest": "yes"})放入result输入对象的属性中。OutputPath告诉阶跃函数只选择该结果作为状态输出并将其交给下一个状态。

在您的“process_version”状态下,您应该能够使用:

"Variable": "$.result.latest",
"StringEquals": "yes",
"Next": ...

资料来源:https ://docs.aws.amazon.com/step-functions/latest/dg/input-output-example.html


推荐阅读