【问题标题】:Migrate from AWS AppSync to Apollo GraphQL (Javascript)从 AWS AppSync 迁移到 Apollo GraphQL (Javascript)
【发布时间】:2020-11-01 23:53:16
【问题描述】:

我对 GraphQL 相当陌生,并且一直在使用 AWS AppSync 服务来处理 GraphQL API。我使用 AWS Cognito 进行身份验证/授权、一些 Lambda 函数以及连接到我的 API 的无服务器 RDS 实例。我的问题是:

我怎样才能或有办法从 AppSync 迁移到 Javascript 中的 Apollo GraphQL 实现,同时重写代码并保持数据源不变?

原因:

  1. 不支持 AppSync 中的版本控制。我无法找到恢复到旧版本 API 的方法。目前,我通过从 AppSync 下载 schema.json 来备份我的 API,并将我的所有解析器备份到一个文本文件中。
  2. 如果代码变大,浏览器会变得无响应并且第一次加载需要很长时间。
  3. $util 中的帮助函数非常有用,但在某些时候,我发现它缺少一些我想做的不同的东西。为了解决这个问题,我使用 Lambda 函数。因此,不支持在 AppSync 中添加自定义模块或库。
  4. 有时,测试和调试解析器真的很令人沮丧。我习惯在控制台上打印,我觉得它真的很有帮助。

任何帮助将不胜感激。

【问题讨论】:

  • 您可以使用模块创建 Lambda 函数,请参阅 Lambda 开发人员指南中的AWS Lambda deployment package in Node.js
  • 对不起,如果我不清楚。我的意思是不支持在 AppSync 中添加更多帮助函数、模块或库。

标签: aws-appsync


【解决方案1】:

这并不是关于迁移的真正答案,而是关于您可能会考虑的问题的更多想法。

  1. 版本控制。您可以使用 serverless 或 AWS 自己的 SAM 探索离线工作 - 这样您就可以对配置进行版本控制。

  2. 浏览器没有响应 - 我猜这不会通过迁移来解决 - 也许这里有一个可以改进的设计问题。

  3. $util 中的辅助函数 - 我理解,尽管您经常可以找到解决方法。 VTL 非常强大(虽然有时很烦人),我从来不需要依赖 lamdba,除了做远远超出任何帮助程序范围的事情(运行 JSON Schema 验证器)。但我可以肯定,自己编写是多么美好。

  4. 调试 - 使用 #1 中的解决方案之一脱机将对此有所帮助。我对 SAM 没有太多经验,但我非常广泛地使用无服务器,并且 appsync 离线选项提供调试。

也许这会有所帮助。

【讨论】:

  • 感谢您的宝贵建议。是的,我想离线工作,我会研究这些框架。关于您对浏览器问题的评论,我将我的 API 分解为更小的部分,但它并不总是有效。我的意思是一些 API 不能被分解并且已经被优化。关于 $util,我前段时间发布了this 问题。虽然这是一项简单的任务,但我找不到任何解决方案,只能创建一个 Lambda 函数。
  • @Myz 我发布了您的$util 问题的答案。诚然,由于所有引用和转义,这很痛苦。就您的 api 而言.... 迁移到不同的后端将如何改变您的 api 的结构?或者更确切地说,您可以在独立的 Apollo 上实现哪些在 AppSync 上无法实现的结构?
猜你喜欢
  • 2021-05-29
  • 2021-11-14
  • 2021-05-02
  • 2019-01-04
  • 2020-09-10
  • 2020-04-04
  • 2020-11-12
  • 2020-07-27
  • 2018-10-11
相关资源
最近更新 更多