Ich arbeite an einem API-Gateway für aws-Dienste, die BatchWriteItem-Operation auf dynamodb ausführt. Aber ich weiß, dass es für einen BatchWrite-Vorgang ein Limit von max. 25 Positionen gibt. Ich bin neu in vtl und ich bin nicht sicher, wie mit Anfragen, die mehr als 25 Put-Elemente haben, umzugehen. Ich schreibe meine aktuelle Körpervorlage auf.Amazon Api Gateway Dynamodb Problem bei der Ausgabe von Body-Mappings für BatchWriteItem (vtl - vector vocal)
Alle Hinweise oder Hilfe wird geschätzt. Vielen Dank.
Body Mapping Vorlage:
#set($inputRoot = $input.path('$'))
{
"RequestItems": {
"SensorDataTest": [
#foreach($elem in $inputRoot.sensorMessages)
{
"PutRequest":
{
"Item":
{
"GatewayID":
{
"N": "$inputRoot.gatewayMessage.gatewayID"
},
"SensorID": {
"N": "$elem.sensorID"
},
"SensorName": {
"S": "$elem.sensorName"
},
"ApplicationID": {
"N":"$elem.applicationID"
},
"NetworkID": {
"S":"$elem.networkID"
},
"DataMessageGUID": {
"S":"$elem.dataMessageGUID"
},
"MessageDate": {
"S":"$elem.messageDate"
},
"State": {
"N":"$elem.state"
},
"RawData": {
"S": "$elem.rawData"
},
"DataType": {
"S": "$elem.dataType"
},
"DataValue": {
"S": "$elem.dataValue"
},
"PlotValues": {
"S": "$elem.plotValues"
},
"PlotLabels": {
"S": "$elem.plotLabels"
},
"SignalStrength": {
"N":"$elem.signalStrength"
},
"BatteryLevel": {
"N": "$elem.batteryLevel"
},
"PendingChange": {
"S": "$elem.pendingChange"
}
}
}
}#if($foreach.hasNext),#end
#end
]
},
"ReturnConsumedCapacity": "TOTAL"
}
Ich habe bereits eine Lambda-Funktion, um damit umzugehen. Ich wollte nur direkt zu Dynamodb schreiben, um zusätzliche Kosten zu vermeiden. Ich werde jetzt mit Lambda gehen. Vielen Dank. –