我刚刚遇到这个我不知道存在的东西:“API 网关作为 DynamoDB 的代理”(参考:https://aws.amazon.com/blogs/compute/using-amazon-api-gateway - 作为 dynamodb 的代理/)
我想用这个替换我的 lambdas^
我所有的请求都非常简单,除了我的 GET 请求有一些内置的自定义过滤器(按列、日期范围等获取的可能组合)
我确实遇到了插件“apigateway-service-proxy”,但不确定这是否足以满足我未来的需求,并且更喜欢以“原始”自定义方式应用它,同时将其合并到我当前的 api 网关(v2又名 HTTP API)。
如果有可能获得某种关于如何在
serverless.yml
中应用它的样板模板(我想这将包含一些代码?最好是在 python 中,但现在必须,我只想了解如何构建我的.yml
文件接受 dynamodb 作为 api 的代理)。非常欢迎参考包含相关信息的来源,我没有找到。
编辑:
由于我的帖子被标记为“需要更多关注”,我将写下我的一些用例。我的 API 应该这样响应:
GET 请求到
/devices
:
/devices
- 应该返回我的 dynamodb 表中的所有设备。/devices?customer_id=42
- 应返回 customer_id 列等于 42 的所有设备。/devices?customer_id=null
- (可以是任何其他不为空但相似的指示符,我知道Number
类型字段没有“null”) 返回所有没有“customer_id”列的设备./devices?created=12345,67899
- 返回在两个时间戳之间创建的所有设备。/devices?customer_id=42&created=12345,67899
- 将返回分配给用户 ID 42 并在 2 个指定时间戳之间创建的所有设备。POST 请求
/devices
:在 Devices dynamodb 表中添加一个设备行,而一些输入如“customer_id、name、url”是强制性的。
/devices
的 PATCH 请求:更新 Devices
表中的一行。可以是以下一列或多列:“名称、网址、customer_id”,而 customer_id 也可以是不存在的列。
注意:解决方案不必包括我提到的所有请求,但越多越好。我可以构建一个构建过滤器的函数。我只需要使用无服务器框架执行此操作的一般指南。