Serverless下DynamoDB餐厅啤酒一对多多对多关系及GSI问题
DynamoDB与Serverless架构下餐厅业务模块开发问题
开发前置背景
- 为DynamoDB与NoSQL领域入门新手,当前正在实操练习AWS环境下的GSI、LSI功能
- 技术实现采用Serverless框架,按业务逻辑拆分独立Lambda函数处理对应流程
- 已完成餐厅模块基础开发:餐厅表以
id为分区键,当前可正常获取全量餐厅基础数据
核心业务目标
- 支持查询全量餐厅信息,同时返回每家餐厅供应的啤酒类型、对应啤酒售价
- 支持查询全量啤酒名称列表,返回结果不包含售价字段
当前开发阻塞
- 创建啤酒的API端点已配置为
restaurant/{id}/beers,发起POST请求时返回错误:"message": "One or more parameter values were invalid: Missing the key id in the item",提示写入项缺少餐厅id字段 - 不清楚如何在创建啤酒的Lambda逻辑中,关联路径传入的餐厅id完成数据写入
- 暂未实现不带售价的全量啤酒名称查询能力
实体关联规则与预期返回结构
- 实体关联关系:餐厅与供应的啤酒为一对多关联;啤酒为多对多关系(同一啤酒名称在不同餐厅的售价存在差异)
- 第一类预期返回结构:嵌套关联啤酒信息的餐厅列表
- 第二类预期返回结构:仅包含啤酒名称的全量列表
现有已完成资产
目前已基于AWS.DynamoDB.DocumentClient完成以下代码与配置编写:
- 餐厅创建逻辑函数
createRestaurant - 啤酒创建逻辑函数
createBeers - 啤酒查询逻辑函数
getBeers - 对应的serverless.yml服务配置文件
内容的提问来源于stack exchange,提问作者user12494839
相关产品推荐
相关产品推荐

