我见过 DynamoDB 作为 AWS AppSync 数据源的示例,但我想知道是否可以使用 Aurora(特别是 PostgreSQL)?如果是,那么作为基本示例,解析器会是什么样子?是否有任何资源演示如何针对 Aurora PostgreSQL 甚至 MySQL 执行此操作?
不可以。您可以使用 Aurora Serverless 作为由 Data API(仍处于测试阶段)驱动的数据源,这允许您将解析器配置为数据库查询。话虽这么说,数据 API 仍然非常慢,而且 Aurora Serverless 的冷启动时间约为 30 秒左右,因为它需要从 VPC 运行。我建议避免生产,但值得一试。
您最好使用 Lambda 作为解析器或从解析器内运行 HTTP RestFul 调用。
忽略答案中提供的评论,没有不尊重的意思,但这些评论来自从未大规模管理过生产的人。事实上,当您的产品收入接近 100 万美元时,您拥有大规模的完全管理 GraphQL 服务以及高安全性,将为您节省数月的维护噩梦。
您可以使用 AWS AppSync 中提供的 AWS Lambda 解析器来访问 Aurora Postgres。该代码类似于使用任何语言访问关系数据库的方式。例如,您可以将 node-postgres 与 NodeJS 结合使用来实现 Lambda 函数。
是的,这是可以做到的。
请看一下这个开源存储库,它正是这样做的:https://github.com/wednesday-solutions/appsync-rds-todo
截至撰写本文时,是的,但前提是它是设置为 Postgres 兼容性的 Serverless Aurora RDS 集群。原因是它是唯一支持Data API的 RDS 实例类型。其他 RDS 实例必须配置为不同的数据源类型,最常见的是 Lambda。
2023-12-21;看来我们的等待即将结束!
我们现在可以使用 Aurora Serverless v2(但仅限 Postgres)作为 AppSync 中的 RDS 解析器。
请注意,只有少数区域支持 ATM,但 AWS 很快就会添加到所有“主要”区域!