我有一个连接到步骤功能的DynamoDB,并且正在构建一个UI以显示更改。我将数据库连接到AppSync实例,并尝试通过AppSync使用订阅,但似乎它们仅观察到当前AppSync中的突变。
如何直接订阅数据源更改?
答案 0 :(得分:4)
您是正确的。当前,AppSync订阅仅从GraphQL突变触发。如果从AppSync以外的其他来源对DynamoDB进行了更改,则订阅不会触发。
如果要跟踪对DynamoDB表所做的所有更改并使用AppSync发布它们,则可以执行以下操作:
1)设置DynamoDB流以捕获更改并将更改输入到AWS Lambda
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html
2)使用本地(无数据源)解析器设置AppSync突变。您可以使用它来向订阅者发布消息,而无需写入数据源。
https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-local-resolvers.html
3)使DynamoDB流Lambda函数(在步骤1中进行设置)调用AWS AppSync突变(在步骤2中进行设置)。
这将使将对DynamoDB表所做的所有更改发布到AppSync订阅者,无论更改来自何处。