AWS API网关,用于在单个API调用中从多个表中获取记录

时间:2017-11-26 23:30:26

标签: amazon-web-services amazon-dynamodb velocity aws-api-gateway

我在DynamoDB中有两个表,它们都有相同的列/键" sessionid"。使用AWS API网关我想在传递列#34; sessionid"的值时从两个表中获取和显示记录。

目前,我的映射模板如下所示,它仅从Table1中检索记录: 集成请求 -

 {
    "TableName": "Table1",
    "KeyConditionExpression": "sessionid = :v1",
    "ExpressionAttributeValues": {
        ":v1": {
                "S": "$input.params('sessionid')"
               }
    }
 }

整合响应 -

 #set($inputRoot = $input.path('$'))
 {
     "Table1": [
         #foreach($elem in $inputRoot.Items) {
         "sessionid": "$elem.sessionid.S",
         "rowId": "$elem.rowId.S"
        }#if($foreach.hasNext),#end
            #end
      ]
 }

如何整合第二张表的映射"表2"在上面的映射中,两个表中的记录是在单个API调用中检索的吗?

您的建议会有所帮助。

1 个答案:

答案 0 :(得分:0)

API网关只能进行一次下游API调用。不幸的是,似乎DynamoDB API仅支持用于扫描/查询/ GetItem请求的单个表。如果要聚合多个表中的项,则必须在API GW和DDB之间使用Lambda函数。