Ilj*_*lja 6 amazon-web-services amazon-dynamodb aws-lambda aws-appsync aws-amplify
我最近很喜欢与AWS Amplify合作,它基于定义的架构为 GraphQL 查询生成代码非常出色。
我遇到了一个定义自定义逻辑/验证服务器端的复杂问题。在袋子外面的AppSync(部分负责扩增出GraphQL API)生成您的架构解析器和DynamoDB表。解析器是使用Apache Velocity模板语言创建的,如果您不熟悉它,我认为它有点学习曲线。
此外,这些解析器是由 Amplify cli 自动生成的。我不确定在 AppSync 控制台或本地编辑它们是否有意义,因为每次我们推送 api 更改时,它们都会再次自动生成?
除此之外,这些自动生成的解析器实际上在将类型模型链接在一起、启用搜索和身份验证检查方面实现了很多,我真的不想接触它们,因为自动生成支持的开发速度是疯狂的。
因此,引入我的自定义逻辑的其他解决方案似乎是 Lambda 函数,用于侦听关联 DynamoDB 表的创建/更新事件。
我想我可以按照下面演示的方式进行设置,基本上允许用户正常使用 GraphQL api,并且当需要服务器验证的操作在 lambda 中对其做出反应时?
例如玩家将物品添加到他们的库存中,我们触发 lambda 函数来检查玩家之前是否拥有该物品,如果没有购买,我们验证物品数据并从玩家表中减去其成本的金币。我认为这很好用,但我的担忧是
我还缺少其他东西吗?
因此 lambda 将在幕后进行验证,我们假设这里的大多数用户都是优秀的参与者,并且他们传递给 GraphQL api 的数据是正确的,因为他们使用我们的客户端。
如果数据是意外的(坏演员),lambda 会做出反应并禁止用户。
这个解决方案是否可行/通用,还有其他选择吗?
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |