AppSync 的订阅是不是仅限于一个特定的用例?

Posted

技术标签:

【中文标题】AppSync 的订阅是不是仅限于一个特定的用例?【英文标题】:Are AppSync's subscriptions very limited to one specific use case?AppSync 的订阅是否仅限于一个特定的用例? 【发布时间】:2018-07-12 21:28:24 【问题描述】:

我花了最后一天尝试AWS AppSync 我对订阅的功能有点失望。 在我看来,AppSync subscription 的当前状态适用于您拥有项目列表并希望它在所有客户端上同步的用例。

与apollo-subscription 能做的相比,它相当有限。

如果我正确理解了文档:

我们无法过滤出您要将数据发送给的目标

我有一些用例,比如对 Post 投票之类的突变可能导致仅将不同类型的数据推送给 Post 的所有者。

必须与特定突变相关联,并且必须属于同一类型

我有一些用例,其中突变甚至查询可能导致向正在侦听事件的特定目标发送推送。

未链接到解析器

如果我错了,你能纠正我吗?

【问题讨论】:

非常感谢您的反馈!该服务仍处于预览阶段,未来几个月将推出与您的上述要求相关的更多功能。继续关注 AWS 移动博客以获取公告。 明确一点:I love AWS AppSync! 我迫不及待地想要使用它。我只是希望所有这些功能都已经存在:D 对于订阅的细粒度访问控制,您可以将解析程序附加到您的订阅字段并使用调用者的身份和 AWS AppSync 数据源执行逻辑。 【参考方案1】:

正如您已经知道的那样,结果必须与突变的结果相同,并且您不能将您的突变链接到解析器。

但是关于你的第一个假设:

可以过滤突变的结果。 例如,如果您有以下突变:

type Mutation 
  addPost(input: PostAddInput!): Post!


input PostAddInput 
  text: String!
  author: ID!

您可以通过此订阅将突变结果发布给特定用户:

type Subscription 
  addedPost(author_id: ID!): Post!
    @aws_subscribe(mutations: ["addPost"])

现在,只有当突变的 author_id 与订阅的 author_id 匹配时,您才会收到结果。

如果您想自己尝试一下,我还在 GitHub 上创建了 AppSync RDS repository。

【讨论】:

以上是关于AppSync 的订阅是不是仅限于一个特定的用例?的主要内容,如果未能解决你的问题,请参考以下文章

自动续订订阅是不是仅限于报亭?

JMS 主题与队列 - 意图

在一个中等复杂的用例中,策略处理和使订阅的缓存数据失效

用于过滤用例的 AppSync DynamoDB 解析器

用于过滤用例的AppSync DynamoDB解析器

持久的有序消息代理的用例是啥