DynamoDB 支持 GraphQL 吗?
支持,通过 AWS AppSync。AppSync 是 AWS 的托管 GraphQL 服务,而 DynamoDB 是它的原生数据源之一:解析器将每个 GraphQL 查询或变更映射到诸如 GetItem、Query 或 PutItem 之类的 DynamoDB 操作。DynamoDB 本身没有 GraphQL 端点——GraphQL 层运行在它前方。
这一搭配如何工作
在 AppSync 中,你将一张 DynamoDB 表注册为数据源,然后为 GraphQL 模式的每个字段附加一个解析器。解析器的请求处理程序将进入的 GraphQL 参数翻译为一次 DynamoDB 调用,其响应处理程序将 DynamoDB 返回的项目重塑为 GraphQL 响应。正是出于这一模式,AWS 将 AppSync 列为 DynamoDB 无服务器集成中的首位。
为什么这是常见组合
两半都是无服务器的:AppSync 扩缩 API 层,而 DynamoDB 扩缩存储和吞吐量,两侧都没有服务器。实时的 GraphQL 订阅与 DynamoDB 个位数毫秒级的写入天然契合。
另一种选择:自带服务器
没有什么强制使用 AppSync——任何 GraphQL 服务器(Apollo、Yoga 等)都可以通过 AWS SDK 调用 DynamoDB 来解析字段,就像它调用任何其他后端一样。代价是你要自行运维 GraphQL 层。
深入了解
GraphQL 解析器仍然要遵守相同的访问模式规则——数据建模指南解释了如何设计服务于你的查询的键,表达式构建器生成底层的条件语法,而 DynoTable 让你检视解析器实际写入了什么。
参考资料
- Data sources — AWS AppSync Developer Guide
- Resolver mapping template reference for DynamoDB — AWS AppSync Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
最后核实于 2026-07-13,依据上方所链接的 AWS 官方文档。