AWS Amplify全栈应用中如何通过AppSync编写GraphQL API查询DynamoDB
AWS Amplify + AppSync + DynamoDB 数据查询后端代码添加指南
前置操作确认
如果还未初始化GraphQL API,先在项目根目录执行amplify add api,选择GraphQL类型,数据源指定为Amazon DynamoDB,按照CLI提示完成基础配置即可。
后端API代码的存放位置
通过Amplify CLI生成的AppSync API,所有后端逻辑代码统一存放在项目根目录的amplify/backend/api/<你的API名称>/路径下,按需求选择对应的实现方式即可:
- 无需自定义逻辑的常规CRUD查询:只需在同目录下的
schema.graphql文件中定义数据类型,给需要自动生成CRUD能力的类型加上@model指令,Amplify会自动生成对应DynamoDB表、以及AppSync的全套查询/变更/订阅解析器,不需要手动编写额外查询代码。
示例schema定义:
以上定义完成后,自动生成type Todo @model { id: ID! content: String! status: String! }getTodo(单条查询)、listTodos(列表查询)等原生查询能力,可直接调用。 - 需要自定义查询逻辑的场景:
- 轻量逻辑(如自定义DynamoDB查询条件、结果格式化):直接在
amplify/backend/api/<你的API名称>/resolvers/目录下新增对应查询的请求映射模板(后缀为.req.vtl)和响应映射模板(后缀为.res.vtl),用VTL语法编写DynamoDB操作逻辑即可。 - 复杂业务逻辑(如字段校验、跨表关联计算):先执行
amplify add function创建Lambda函数,函数代码存放在amplify/backend/function/<你的函数名称>/src/目录下,在Lambda代码中编写DynamoDB查询逻辑,再将AppSync中自定义查询的数据源绑定为该Lambda函数即可。
- 轻量逻辑(如自定义DynamoDB查询条件、结果格式化):直接在
生效方式
所有代码修改完成后,在项目根目录执行amplify push,Amplify会自动将schema变更、解析器逻辑、Lambda代码同步部署到AppSync、DynamoDB等对应的云服务中,无需手动在AWS控制台配置。
测试方式
部署完成后执行amplify console api,选择GraphQL即可直接打开AppSync控制台,在线测试编写的查询接口是否符合预期。
内容的提问来源于stack exchange,提问作者Rushi Donga
相关产品推荐
相关产品推荐

