如何直接订阅我的 AWS AppSync 数据源?

How do I subscribe directly to my AWS AppSync data source?

我有一个连接到步骤函数的 DynamoDB,我正在构建一个 UI 来显示更改。我将数据库连接到 AppSync 实例并尝试通过 AppSync 使用订阅,但它们似乎只观察到当前 AppSync 中的突变。

如何直接订阅数据源变化?

你是对的。目前,AppSync 订阅仅由 GraphQL 突变触发。如果从 AppSync 以外的来源对 DynamoDB 进行了更改,则不会触发订阅。

如果您想跟踪对 DynamoDB 所做的所有更改 table 并使用 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 Stream Lambda 函数(在步骤 1 中设置)调用 AWS AppSync 突变(在步骤 2 中设置)。

这将允许将对 DynamoDB table 所做的所有更改发布给 AppSync 订阅者,无论更改来自何处。