Aurora PostgreSQL 可以与 AWS AppSync 一起使用吗?
Posted
技术标签:
【中文标题】Aurora PostgreSQL 可以与 AWS AppSync 一起使用吗?【英文标题】:Can Aurora PostgreSQL be used with AWS AppSync? 【发布时间】:2018-07-08 21:03:24 【问题描述】:我看到了将 DynamoDB 作为 AWS AppSync 数据源的示例,但我想知道是否可以使用 Aurora(特别是 PostgreSQL)?如果是,解析器会是什么样的基本示例?是否有任何资源可以演示如何为 Aurora PostgreSQL 甚至 mysql 执行此操作?
【问题讨论】:
【参考方案1】:它不能。您可以使用 Aurora Serverless 作为由 Data API(仍处于测试阶段)驱动的数据源,这允许您将解析器配置为数据库查询。话虽如此,数据 API 仍然非常慢,并且 Aurora Serverless 的冷启动时间为 30 秒左右,因为它需要从 VPC 运行。我建议避免生产,但值得一玩。
您最好使用 Lambda 作为解析器或从解析器中运行 HTTP RestFul 调用。
忽略答案中提供的 cmets,没有不尊重,但 cmets 来自从未大规模管理生产的人。当您的产品收入接近 100 万时,您拥有全面管理的大规模 GraphQL 服务以及高度安全的状态,这将为您节省数月的维护噩梦。
【讨论】:
【参考方案2】:您可以使用 AWS AppSync 中提供的 AWS Lambda 解析程序来访问 Aurora Postgres。该代码类似于使用任何语言访问关系数据库的方式。例如,您可以使用 node-postgres 和 NodeJS 来实现 Lambda 函数。
【讨论】:
到那时,为什么不在 Lambda 中启动 Graphile 呢?似乎 AppSync 并没有增加太多价值…… 我希望 aws 也能提供这样的功能!使用 Graphile、graphql-yoga 或 apollo-server 总是意味着您需要为 websocket 运行实例并需要扩展它们。我猜 appsyncs 在这方面更聪明。除此之外,我同意 cazzer 我想现在可以不用任何 Lambda 直接完成。不是吗?我对如何做好它有点困惑......:/ @cazzer Graphpille 不支持订阅,这是使用 graphql 的驱动程序。 AppSync 还与 AWS Cognito 用户池相关联,使跨服务的身份验证更容易。【参考方案3】:是的,这可以做到。
看看这个开源代码库就是这样做的:https://github.com/wednesday-solutions/appsync-rds-todo
【讨论】:
欢迎来到 SO!不要发布指向网站的链接,因为将来它可能会被破坏或删除。相反,请解释解决方案。【参考方案4】:在撰写本文时,是的,但前提是它是设置为 Postgres 兼容性的 无服务器 Aurora RDS 集群。原因是它是唯一支持Data API 的 RDS 实例类型。其他 RDS 实例必须配置为不同的数据源类型,最常见的是 Lambda。
【讨论】:
以上是关于Aurora PostgreSQL 可以与 AWS AppSync 一起使用吗?的主要内容,如果未能解决你的问题,请参考以下文章
从现有 RDS 数据库实例 (Aurora PostgreSQL) 创建 CloudFormation Yaml