是否可以让单个参数在步进函数中有条件地接收其值?
Is it possible to have a single parameter receive its value conditionally in a step function?
我有一个参数 'request_id',我想从 JSON 的两种不同格式中获取一个 ID,并将其发送到我的步进函数任务的输入。
第一个表格如下所示:
{ "request_id": "abcde-abcd-abcde-abc" }
第二个是这种形式:
{ "request": { "id": "abcde-abcd-abcde-abc", }
目前,我有一个参数看起来像
"request_id.$": "$.request_id"
但想要等同于(这个不起作用)的东西
"request_id.$": "$.['request_id','request.id']"
这在 step 函数中是否可行,或者我是否需要将这两个请求 ID 拆分为我的 JSON 中的两条路径或在函数中执行?
一个解决方法是选择状态并检查第一个变量是否存在:
{
"Variable": "$.request_id",
"IsPresent": true
}
然后根据结果进行两次不同的赋值。
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html
{
"StartAt": "choice",
"States": {
"choice": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.request_id",
"IsPresent": true,
"Next": "assignment1"
}
],
"Default": "assignment2"
},
"assignment1": {
"Type": "Pass",
"Result": "World",
"End": true
},
"assignment2": {
"Type": "Pass",
"Result": "World",
"End": true
}
}
}
我有一个参数 'request_id',我想从 JSON 的两种不同格式中获取一个 ID,并将其发送到我的步进函数任务的输入。
第一个表格如下所示:
{ "request_id": "abcde-abcd-abcde-abc" }
第二个是这种形式:
{ "request": { "id": "abcde-abcd-abcde-abc", }
目前,我有一个参数看起来像
"request_id.$": "$.request_id"
但想要等同于(这个不起作用)的东西
"request_id.$": "$.['request_id','request.id']"
这在 step 函数中是否可行,或者我是否需要将这两个请求 ID 拆分为我的 JSON 中的两条路径或在函数中执行?
一个解决方法是选择状态并检查第一个变量是否存在:
{
"Variable": "$.request_id",
"IsPresent": true
}
然后根据结果进行两次不同的赋值。
https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-choice-state.html
{
"StartAt": "choice",
"States": {
"choice": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.request_id",
"IsPresent": true,
"Next": "assignment1"
}
],
"Default": "assignment2"
},
"assignment1": {
"Type": "Pass",
"Result": "World",
"End": true
},
"assignment2": {
"Type": "Pass",
"Result": "World",
"End": true
}
}
}