【问题标题】:AWS API gateway to fetch records from multiple tables in a single API callAWS API 网关在单个 API 调用中从多个表中获取记录
【发布时间】:2018-05-10 04:08:52
【问题描述】:

我在 DynamoDB 中有两个表,它们都有相同的列/键“sessionid”。使用 AWS API 网关,当我传递“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
      ]
 }

如何在上述映射中集成第二个表“Table2”的映射,以便在单个 API 调用中检索两个表中的记录?

您的建议会有所帮助。

【问题讨论】:

  • 你能解释的更具体点吗?

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-18
    • 2016-08-04
    • 2018-02-26
    • 1970-01-01
    • 2018-10-28
    • 2022-08-21
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多