如何参考AWS step function并行任务输出?
How reference AWS step function parallel task output?
我在包含两个分支的步骤函数中有一个并行任务。
输入是:
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
}
每个分支 return 一个 json 结果如下
分支 1(我使用了 "OutputPath": "$"):
{
"requestType": "GrantAccess",
"DBUser": "exists",
"ADUser": "exists"
}
分支 2(我使用 "ResultPath": "$.approvalStatus"):
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
"approvalStatus": "Approved"
}
当两个分支都完成时,并行任务的输出return:
[
{
"requestType": "GrantAccess",
"DBUser": "exists",
"ADUser": "exists"
},
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
"approvalStatus": "Approved"
}
]
下一个任务是选择,
"Choices": [
{
"Variable": "$.input[1].approvalStatus",
"StringEquals": "Approved",
"Next": "ProcessRequest"
},
{
"Variable": "$.input[1].approvalStatus",
"StringEquals": "Declined",
"Next": "SendDeclineNotification"
}
]
它一直给我以下错误:
"cause": "An error occurred while executing the state 'CheckApprovalStatus' (entered at the event id #16). Invalid path '$.input[1].approvalStatus': The choice state's condition path references an invalid value."
所以这是我的问题,
1) 在选择任务中应该如何引用它来获取approvalStatus
值?
2) 无论如何我可以用 json 格式而不是数组来制作并行任务 return 吗?
提前致谢
如果您不想更改 ResultPath,我认为您应该使用类似 "$[1].approvalStatus"
的方法。
我在包含两个分支的步骤函数中有一个并行任务。 输入是:
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
}
每个分支 return 一个 json 结果如下
分支 1(我使用了 "OutputPath": "$"):
{
"requestType": "GrantAccess",
"DBUser": "exists",
"ADUser": "exists"
}
分支 2(我使用 "ResultPath": "$.approvalStatus"):
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
"approvalStatus": "Approved"
}
当两个分支都完成时,并行任务的输出return:
[
{
"requestType": "GrantAccess",
"DBUser": "exists",
"ADUser": "exists"
},
{
"database": "test",
"userName": "tester",
"userID": "test123",
"adGroup": "testADGroup",
"dbGroup": "ReadGroup"
"approvalStatus": "Approved"
}
]
下一个任务是选择,
"Choices": [
{
"Variable": "$.input[1].approvalStatus",
"StringEquals": "Approved",
"Next": "ProcessRequest"
},
{
"Variable": "$.input[1].approvalStatus",
"StringEquals": "Declined",
"Next": "SendDeclineNotification"
}
]
它一直给我以下错误:
"cause": "An error occurred while executing the state 'CheckApprovalStatus' (entered at the event id #16). Invalid path '$.input[1].approvalStatus': The choice state's condition path references an invalid value."
所以这是我的问题,
1) 在选择任务中应该如何引用它来获取approvalStatus
值?
2) 无论如何我可以用 json 格式而不是数组来制作并行任务 return 吗?
提前致谢
如果您不想更改 ResultPath,我认为您应该使用类似 "$[1].approvalStatus"
的方法。