当前位置: 首页 > 知识库问答 >
问题:

对单个项目的精细访问 - GetItem, DynamoDB 解析程序 AppSync

融建树
2023-03-14

如何在AppSync中提供对单个项目的细粒度访问。我有以下GetItem操作的解析器。

{   
    "version": "2017-02-28",
    "operation": "GetItem",
    "key": {
       "identityId": $util.dynamodb.toDynamoDBJson($ctx.args.identityId),
       "id": $util.dynamodb.toDynamoDBJson($ctx.args.id),   
    },   
    "condition": {
       "expression": "attribute_exists(#author) AND #author = :author",
       "expressionNames": {
          "#identityId": "identityId",
          "#id": "id",
          "#author": "author"
       },
       "expressionValues": {
          ":author" : { "S" : "${ctx.identity.cognitoIdentityId}" }
       }   
    }
}

但是,当我运行查询时,我得到:

GraphQL error: Unsupported element '$[condition]'.

这没关系,因为根据文档,此操作没有条件键 https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-getitem

我的问题是,如果我不能放置条件,如何过滤/限制对属于特定作者的项目的访问(细粒度访问)?

共有1个答案

戚阳
2023-03-14

您可以在响应映射模板中过滤您的结果,如下所示。据我所知,您正在从认知标识中获取作者字段,并且您的项目具有不同的主键,因此您在查询时不能使用作者。

#if($context.result["author"] == $ctx.identity.cognitoIdentityId)
    $utils.toJson($context.result);
#else
    $utils.unauthorized()
#end
 类似资料:
  • 项目1:Firebase Analytics测试项目2:Firebase Analytics Prod项目 如何在一个项目中添加两个google-services.json文件。有没有其他方法可以使用相同的。

  • 本文向大家介绍vue2的todolist入门小项目的详细解析,包括了vue2的todolist入门小项目的详细解析的使用技巧和注意事项,需要的朋友参考一下 看完vue2的官方文档后,找个入门项目巩固下知识点,简单的todolsit是个不错的选择。 项目用到了vue.js vue.cli webpack ES6 node环境,完成项目后会对这些技术栈有了些了解。 准备开发环境 安装谷歌插件vue.j

  • 我有2个与firestore的firebase项目,让我们称他们为A和B,他们都有自己的web客户端。现在A web客户机需要读取B firestore数据库,所以我需要允许A客户机在B的某些集合下对firestore执行某些操作。是否有一种方法可以在使用firestore规则的同时使用B中A的身份验证数据来允许此类操作?。是否有一种方法可以将auth令牌从a链接到B中允许它们?。 任何机制都行得

  • 我使用MFC和对话框创建了两个独立的可执行文件项目。 我是visual studio的新手,所以请给出一些建议。谢谢

  • 我试图用Firebase构建一个android应用程序,在一个应用程序中需要两个独立的数据库(教师和学生)。我在互联网上到处寻找解决方案,但我得到的只是这个解决方案--一个应用程序中的多个Firebase项目,这似乎是一个很好的解决方案,但我不明白。

  • 我试图从我的SAM应用程序本地连接到DynamoDB。我能够启动Dynamodb服务器,并能够通过我的python文件连接它,引用此https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.01.html 导入json导入boto3从boto3.dynamodb.conditions

  • 本文向大家介绍spring项目实现单元测试过程解析,包括了spring项目实现单元测试过程解析的使用技巧和注意事项,需要的朋友参考一下 后台开发过程中,写单元测试是非常重要的,对于我们开发人员调试、排查问题是很方便的, 但是我们在启动项目的时候,需要将所以类交给spring托管,在单元测试中需要怎么实现类的注入呢? 直接上图 继续上代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家

  • 所以,我目前正在制作一个包含多个索引的DynamoDB表,并试图管理访问控制。 我有一个键(organizationId),我不想用它作为我的二级索引分区或排序键,因为它在查询方面几乎毫无意义。 DynamoDB工作台 表名:执行 分区键:组织ID(字符串) DynamoDB二级索引 主分区键:进程ID(String) 主排序键:状态(数字) 以下IAM策略条件是否会有效地限制对基于organiz