问题描述
我有一个参数'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","End": true
}
}
}