json 从阶跃函数输出中移除项目

ippsafx7  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(113)

当输入从一个状态传递到另一个状态时,是否有方法从输入事件中删除特定的Key-value?例如:我需要从输入中删除CurrentSubAccountChunkResults键和值,然后将其传递到阶跃函数的下一个状态。我读到我可以指定要过滤掉的参数。我没有指定所有需要的参数,而是试图找到一种方法来删除输入中不需要的参数,并将其余的传递到下一个状态。有人能帮我提供他们可能有的任何想法吗?

{
"Item1": { item: No1, item: No2 },
"Item2": "iam-item2",
"Item3": 3,
"Item4": { item: No4, item: No5 },
"CurrentSubAccountChunkResults" : { "result1": "iam-result1" },
"VerificationResults": { "final-result1": "iam-result1" }
}
mftmpeh8

mftmpeh81#

我相信你的选择是:
1.用于移除不需要的键和值的Lambda任务
1.两个传递任务以编校值,但不传递键
这里是非Lambda选项。第一遍任务添加您想要编校的“私有”密钥名称。第二遍任务使用JsonMerge内在函数合并payloadprivate

{
  "StartAt": "AddPrivateFields",
  "States": {
    "AddPrivateFields": {
      "Type": "Pass",
      "Parameters": {
        "payload.$": "$",
        "private": {
          "CurrentSubAccountChunkResults": null
        }
      },
      "Next": "Redact"
    },
    "Redact": {
      "Type": "Pass",
      "Parameters": {
        "redacted.$": "States.JsonMerge($.payload, $.private, false)"
      },
      "End": true
    }
  }
}

如果合并函数("States.JsonMerge($.payload, $.private, false)")中的两个对象共享键,则第二个对象中的值将优先。这将在输出中将private键设置为null

{
 "redacted": {
   "CurrentSubAccountChunkResults": null,
   "Item1": {
     "item": "No1",
     "item2": "No2"
   },
   "Item2": "iam-item2",
   "Item3": 3,
   "Item4": {
     "item": "No4",
     "item2": "No5"
   },
   "VerificationResults": {
     "final-result1": "iam-result1"
   }
 }
}

相关问题