作者:小白兔 | 来源:互联网 | 2022-12-08 19:07
我有一个DynamoDB连接到步骤功能,并且正在构建一个UI以显示更改。我将数据库连接到AppSync实例,并尝试通过AppSync使用预订,但似乎它们仅观察到当前AppSync中的突变。
如何直接订阅数据源更改?
1> 小智..:
你是对的。当前,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 Stream Lambda函数(在步骤1中进行设置)调用AWS AppSync突变(在步骤2中进行设置)。
这将使对DynamoDB表所做的所有更改发布到AppSync订阅者,无论更改来自何处。
取决于身份验证类型。对于API密钥,只需添加标题即可。OIDC和Cognito用户池的同上。如果您使用的是AWS_IAM,则还有更多工作要做,因为您必须使用AWS AppSync SDK签署连接。