使用AWS Appsync和GraphQL在Dynamo DB中查询多个表

时间:2020-04-04 17:35:44

标签: ios graphql amazon-dynamodb aws-amplify aws-appsync

我正在尝试使用Amazon的App Sync,DynomiteDB和GraphQL构建ios应用程序。我已经建立了一个表,可以向其发送API调用。但是,我在数据库中创建了一个新表,并在Graphql模式中为其编写了查询。但是,当我打电话在表中创建新对象时,收到错误消息:在服务器上保存该项目时出错:[无法承担角色arn:...我想知道是否可以查询两个不同的表没有明确的关系(即,一个表包含另一个表中包含的对象的列表)。

1 个答案:

答案 0 :(得分:2)

使用DynamoDB单元解析器,您可以查询单个表(DynamoDB批处理操作之外,但保留用于批量用例) https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html

使用管道解析器,您可以查询多个表,但是调用是顺序的(查询表A,然后查询表B,依此类推),并且不能动态(您不能查询表A并遍历结果和对于每一项,请针对表B)进行查询。管道解析器对于执行检查非常有用,例如从表A执行auth调用,然后从表B查询。

如果您的用例更复杂,我建议您使用Lambda数据源,并在Lambda内进行DynamoDB调用,此外还可以使用您喜欢的编程语言。