aws*_*est 4 json amazon-web-services amazon-dynamodb aws-step-functions
我正在尝试使用 AWS Step Functions 将 Item 放入 DynamoDB 中。
我设法使用简单的字符串字段 (S) 保存 Item,但其中一个字段应该存储整个 JSON 负载。所以应该是地图(M)。
但我的有效负载还包括嵌套地图。
JSON 示例:
{
"firstMap": {
"field": "something",
},
"secondMap": {
"nestedMap": {
"field": "something",
},
"anotherNestedMap": [
{
"field": "something",
"oneMoreNestedMap": {
"andOneMore": {
"field": "something",
},
"arrayComesHere": [
{
"andAgainNestedMap": {
"field": "something",
},
"andAgain": [
{
"field": "something",
"alsoNestedArray": [
{
"field": "something"
}
]
}
]
}
]
},
"letItBeFinalOne": [
{
"field": "something"
}
]
}
]
...
Run Code Online (Sandbox Code Playgroud)
我想做的就是说,嘿 Step Function,请将整个 JSON 插入到项目字段中,如下所示
"Item": {
...
"whole_payload": {
"M.$": "$"
},
} ...
Run Code Online (Sandbox Code Playgroud)
但它失败了,因为它只接受一张要处理的 Map。所以我需要直接迭代所有嵌套映射并用“M”标记它们。
有没有办法让它自己解决呢?
就像在 Typescript 中一样,我可以使用 aws.DynamoDB.DocumentClient() 并将整个 JSON 放入该字段,它会自行解析所有映射
小智 5
遇到了向 AWS Step 功能团队提出类似请求的线程。增强的新功能可以更接近您正在寻找的东西。
示例片段:
...
"Parameters": {
"TableName" : "dynamodb-table",
"Item":{
"requestId" : {
"S.$": "$.requestId"
},
"payload": {
"S.$":"States.JsonToString($)"
}
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1907 次 |
| 最近记录: |