reactjs - 从 DynamoDB 更改 react 应用程序更新数据

标签 reactjs aws-lambda graphql amazon-dynamodb aws-appsync

我正在使用 AWS AppSync 和 DynamoDB 构建带有 GraphQL 的 React 应用程序。我的用例是,我有一个数据表,该数据表是从 DynamoDB 表中提取并使用 GraphQL 显示给用户的。我有一些字段正在通过 AWS 上运行的分步函数进行更新。我需要为用户自动更新这些字段,就像 GraphQL 的订阅一样,但我发现订阅与突变相关,因此从步骤函数对数据库的更新不会触发前端的订阅更新。为了解决这个问题,我使用以下方法:

useEffect(() => {
  setTimeout(getSubmissions, 5 * 1000)
})

显然,这是大量的过度获取,并且可能会产生不必要的费用。我一直在寻找更好的解决方案,并遇到了 DynamoDB 流,但如果 DynamoDB 流无法触发前端刷新组件,则它们无法帮助我。一定有比我想出的更好的解决方案。

谢谢!

最佳答案

您是对的,在 AWS AppSync 中,要触发订阅发布,您必须触发 GraphQL 突变。

but I found out that subscriptions are tied to mutations and thus an update to the database from step functions will not trigger a subscription update on the frontend.

如果您直接通过步骤函数或通过 DynamoDB 流更新 DynamoDB 表,则 AppSync 无法知道刷新的数据。 为什么不让步骤函数使用 AppSync 突变而不是直接更新表?这样,您就可以将订阅链接到突变,并让感兴趣的客户在数据刷新时获得推送的更新。

关于reactjs - 从 DynamoDB 更改 react 应用程序更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58774673/

相关文章:

javascript - react 授权 header 不起作用

amazon-web-services - 配置 Amazon s3 存储桶以运行在另一个账户中创建的 Lambda 函数

amazon-web-services - 仅在代码更改时为 Lambda 创建新的 archive_file?

asp.net-mvc-5 - Lambda 和 DynamoDB 上的无服务器 CMS

node.js - 将 Apollo Express 服务器部署到 Heroku 时出现问题 : "GET query missing."

javascript - Sequelize : instance. get 不是一个函数

graphql - 如何取消订阅 Relay Modern

reactjs - 使用 redux-saga 和 fetch 自动处理 401 响应

reactjs - 使用 auth0 成功登录后,react-oidc-context 重定向到原始路由

.htaccess - 使用 webpack 构建应用程序后 React 路由不起作用