如何将 StepFunction ResultSelector 与 ResultPath 合并?

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

在 AWS 中,我有一个 Step Function 工作流程:

                    "GetAccountAlias": {
                      "Type": "Task",
                      "Resource": "arn:aws:states:::aws-sdk:iam:listAccountAliases",
                      "Parameters": {
                        "MaxItems": 1
                      },
                      "ResultSelector": {
                        "name.$": "States.ArrayGetItem($.AccountAliases, 0)"
                      },
                      "ResultPath": "$.name",
                      "Next": "Update"
                    },

它得到这样的输入:

{
  "my_object_key": "123"
}

接下来我检索别名。现在输出是:

{
  "my_object_key": "123",
  "name": {
    "name": "<account-alias>"
  }
}

当我将

"ResultPath": "$.name"
更新为
"ResultPath": "$"
时,输出为:

  {
    "name": "<account-alias>"
  }

我想要的是:

{
  "my_object_key": "123",
  "name": "<account-alias>"
}

我怎样才能实现这个目标? (最好不使用额外的任务/阶段)

amazon-web-services aws-step-functions
1个回答
0
投票

不幸的是,您无法在同一状态下完成此操作,因为输入在 ResultSelector 中不可用。您需要在后续的通过状态中执行此操作(请参阅下面的示例)。

  "Format Output": {
      "Type": "Pass",
      "Parameters": {
        "my_object_key.$": "$.my_object_key",
        "name.$": "$.name.name"
      },
      "Next": "My Next State"
    }
© www.soinside.com 2019 - 2024. All rights reserved.