在 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>"
}
我怎样才能实现这个目标? (最好不使用额外的任务/阶段)
不幸的是,您无法在同一状态下完成此操作,因为输入在 ResultSelector 中不可用。您需要在后续的通过状态中执行此操作(请参阅下面的示例)。
"Format Output": {
"Type": "Pass",
"Parameters": {
"my_object_key.$": "$.my_object_key",
"name.$": "$.name.name"
},
"Next": "My Next State"
}