AWS AppSync 中订阅的自定义筛选

Posted

技术标签:

【中文标题】AWS AppSync 中订阅的自定义筛选【英文标题】:Custom filtering on subscription in AWS AppSync 【发布时间】:2018-10-06 20:07:03 【问题描述】:

是否可以在 AWS AppSync 中对订阅进行自定义过滤逻辑?

据我所知,目前的行为是: 例如我的架构如下

type Mutation 
  createEvent(userId: ID!, event: Event!): Event!


type Subscription 
  onEvent(userId: ID!): Event!
  @aws_subscribe(mutations: ["createEvent"])

AppSync 的当前行为是,当我触发 createEvent 时,AppSync 承诺如果 userId 相等,订阅的订阅者会收到事件。 即AppSync的过滤逻辑是这样的

if (Muatation.userId == Subscription.userId) 
  // forward to subscriber

但是如果我想要不同的过滤逻辑怎么办? 例如,我想订阅除我触发的事件之外的所有其他事件? 即

if (Muatation.userId != Subscription.userId) 
  // forward to subscriber

那么,AppSync 中是否可以有自定义过滤逻辑?

【问题讨论】:

【参考方案1】:

目前,AppSync 不支持此用例。

未来可能会考虑添加自定义过滤。

【讨论】:

近年来这件事有什么变化吗?【参考方案2】:

在这里查看可能的过滤方法后 - appsync-doc

似乎不可能

您唯一能做的就是在您的客户端中添加一个小逻辑,通过比较用户 ID 来检测订阅是否属于您。

【讨论】:

以上是关于AWS AppSync 中订阅的自定义筛选的主要内容,如果未能解决你的问题,请参考以下文章

创建在特定事件发生时调用的自定义 appsync 解析器或 lambda 函数

通过 AppSync 上的自定义 Lambda 授权方对突变进行身份验证

使用 GraphQL 转换在 AWS AppSync 中生成带有参数的订阅

如何使用 $util.error 在 AppSync 中发送自定义错误

筛选 AppSync 订阅

AWS Appsync 订阅 - “连接失败:连接握手错误”