gpt4 book ai didi

amazon-web-services - 用于 dynamodb 映射的 AWS API 网关主体映射模板

转载 作者:行者123 更新时间:2023-12-03 16:25:59 25 4
gpt4 key购买 nike

我想弄清楚如何通过 AWS 中的 API 网关将动态数据插入到 dynamodb 表中。目前我有一个 dynamodb 表和一个 API 端点设置,它接受这样的 POST。

发布 https://{unique-id}.execute-api.us.east-1.amazonaws.com/notification/events

{
"reference_number": 99,
"purchase_date": "1/1/2017"
}

我已经在 API 网关中设置了一个 body 映射模板来将数据传送到 dynamodb。
{ 
"TableName": "Events",
"Item": {
"reference_number": {
"N": "$input.path('$.reference_number')"
},
"purchase_date": {
"S": "$input.path('$.purchase_date')"
}
}
}

以上工作并保存到表中。

假设我将事件哈希添加到我的 json(可以根据事件更改)。
{
"reference_number": 99,
"purchase_date": "1/1/2017",
"event": {
"name": "purchase",
"items": [1,3,6],
"info": {
"currencyID": "USD",
"countryID": "US"
}
}
}

如何使用 API Gateway Body 映射模板语法将事件属性保存到 dynamodb 中的映射?
{ 
"TableName": "Events",
"Item": {
"reference_number": {
"N": "$input.path('$.reference_number')"
},
"purchase_date": {
"S": "$input.path('$.purchase_date')"
},
"event":{
"M": "$input.path('$.event')"
}
}
}

上面的模板给了我以下错误。 “预期的 map 或空”

最佳答案

看起来DynamoDB API 实际上要求'M' 属性的值是String -> AttributeValue 的映射。 .不幸的是,您无法传递原始 JSON。您必须手动映射整个 event对象使 DDB API 满意。

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_AttributeValue.html#DDB-Type-AttributeValue-M

一种可能的解决方法是将 event 字符串化。对象并将其写为类型 S但这当然需要读者期待这种行为。

{ 
"TableName": "Events",
"Item": {
"reference_number": {
"N": "$input.path('$.reference_number')"
},
"purchase_date": {
"S": "$input.path('$.purchase_date')"
},
"event":{
"S": "$util.escapeJavaScript($input.json('$.event'))"
}
}
}

关于amazon-web-services - 用于 dynamodb 映射的 AWS API 网关主体映射模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com