使用Appsync/Firebase进行细粒度访问控制

使用Appsync/Firebase进行细粒度访问控制,firebase,aws-lambda,google-cloud-functions,serverless,aws-appsync,Firebase,Aws Lambda,Google Cloud Functions,Serverless,Aws Appsync,当需要细粒度访问控制时,使用Appsync/Firebase创建一个完全“无服务器”的应用程序是一个好主意吗 我试着用Firebase,然后用AppSync构建一个应用程序,感觉这些解决方案有点让我瘫痪,我开始想,也许我仍然用“旧”的方式来解决问题,这才是让我瘫痪的,而不是工具 我所挣扎的是访问控制。 Firebase有“Firebase规则”,AppSync有“VTL”(Apache Velocity模板语言),两者都提供了相对较好的解决方案,“Firebase规则”更简单、更简洁,但VTL更

当需要细粒度访问控制时,使用Appsync/Firebase创建一个完全“无服务器”的应用程序是一个好主意吗

我试着用Firebase,然后用AppSync构建一个应用程序,感觉这些解决方案有点让我瘫痪,我开始想,也许我仍然用“旧”的方式来解决问题,这才是让我瘫痪的,而不是工具

我所挣扎的是访问控制。 Firebase有“Firebase规则”,AppSync有“VTL”(Apache Velocity模板语言),两者都提供了相对较好的解决方案,“Firebase规则”更简单、更简洁,但VTL更健壮,因为它基本上是一种编程语言

问题是,我试图根据权限的“集合/表”授予用户访问数据库中文档的权限。因此,每个用户在“集合/表”中都有一个具有细粒度权限的文档,我需要读取该文档,以便知道他是否有权访问他尝试读取/写入的资源

使用firebase和AppSync,我可以读取数据库,但两者都有各自的限制:

  • Firebase规则具有请求限制。如果用户 具有多个“权限组”
  • AppSync更灵活,但仍然有限,如果我要写一些逻辑,我宁愿使用我选择的语言而不是VTL。此外,我宁愿将代码放在本地项目中,而不是只放在通过GUI访问的云中
因此,最终,这两种解决方案都让我觉得在它们之前有了另一层,以便做更复杂的事情,所以它可以是函数,也可以是整个应用程序。 但是,为什么我需要他们所有的API呢?在Appsync/Firebase之前有另一层基本上迫使我重新实现GraphQL/firebaseapi,然后,为什么不使用另一个工具来构建它呢

那么,我做错了吗?在AppEngine或类似的解决方案上部署应用程序是否会更好(从而失去功能的优势)


注意:如果在阅读了所有这些内容后仍然不清楚,我很抱歉,英语是我的第一语言。

AWS AppSync最近添加了管道解析器,这听起来是一个适合您的用例的完美解决方案。您可以使用一系列解析器函数组合GraphQL解析器。针对文档集合表的身份验证检查可以作为一个可重用的函数实现


看看教程,看看它是否满足您的需要

感谢您抽出时间阅读并回复!看来我能解决这个问题。他们上个月及时发布了:)我有一个问题。Amazon是否有任何解决方案允许我在本地编辑模式,然后进行部署?我只是希望有版本控制。是的,您可以使用CloudFormation管理模式。最快的入门方法是使用,它允许您使用声明性GraphQL定义后端如果您想要更多控制,那么您可以。