使用API​​ Gateway的映射模板获取DynamoDB中的所有项目

问题描述

是否存在使用API​​ Gateway端点中的映射模板从DynamoDB表检索所有项目的简单方法?我通常会在返回数据之前使用Lambda处理数据,但这是一个非常简单的任务,Lambda似乎有点过分。

我有一个表,其中包含以下格式的数据:

roleAttributeName    roleHierarchyLevel    roleIsActive    roleName
"admin"                99                    true            "Admin"
"director"             90                    true            "Director"
"areaManager"          80                    false           "Area Manager"

我对获取数据感到满意,表示形式无关紧要,因为我以后可以在代码中对其进行进一步的转换。

我一直在环顾四周,但是所有教程都解释了如何通过查询和参数(例如roles/{roleAttributeName})来获取特定数据位,但是我只想点击roles/获取所有项目。

解决方法

API网关允许您将DynamoDB代理为服务。 Here您有一个有趣的教程(如何忽略索引相关的部分以使其起作用)。

要从表中检索所有项目,可以将 Scan 用作API Gateway中的操作。请记住,对于 Scan Query 操作,DynamoDB limits the query的大小为1MB。 您还可以使用 Limit 参数在自动完成查询之前限制自己的查询。

AWS DynamoDB Scan Reference

,

您需要做的就是

  1. 创建资源(无需花括号,因为我们不需要特定的项目)
  2. 创建一个get方法 在配置集成请求时,使用“扫描”而不是“在行动中查询”。

配置如下: enter image description here

  1. 现在尝试测试...您应该会得到答复。
  2. 要在邮递员上进行尝试,请先部署api,然后使用提供的链接进入邮递员,然后输入您的资源名称。