0

Dynamo에 BatchWriteItem 연산을 수행하는 aws 서비스의 API 게이트웨이에서 작업 중입니다. 하지만 하나의 BatchWrite 작업에 대해 최대 25 개의 항목 제한이 있다는 것을 알고 있습니다. Im는 vtl에 익숙하지 않고 Im은 25 개 이상의 put 항목이있는 요청을 처리하는 방법을 모릅니다. 내 현재의 몸매 틀을 쓰고 있어요.BatchWriteItem (vtl - 속도 템플릿 언어)에 대한 Amazon Api Gateway Dynamob 본문 매핑 템플릿 문제

힌트 또는 도움을 주실 수 있습니다. 감사.

바디 매핑 템플릿 :

상관없이 당신이 당신의 속도 템플릿에 무엇을

#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" 
 
}

답변

0

, API 게이트웨이는 여전히 한 번만 AWS 통합을 호출합니다. 의도적으로 단일 API 게이트웨이 호출을 처리하기 위해 여러 백엔드 통합 호출을 수행 할 수있는 방법이 없습니다. (나중에이 기능을 추가 할 수도 있습니다.)

25 개가 넘는 항목을 넣어야하는 경우 항목을 통해 클라이언트 루프를 만들고 각 항목에 대해 API를 별도로 호출하는 것이 좋습니다. 항목.

+0

이미이 문제를 처리하는 람다 함수가 있습니다. 방금 추가 비용을 없애기 위해 dynamodb에 직접 쓰고 싶었습니다. 나는 지금 람다와 함께 갈 것이다. 고맙습니다. –