能否直接从API Gateway查询Amazon RDS实例?

25

我是API Gateway的新手,迄今为止我尝试过这是一个非常强大的工具。对于我现在正在工作的项目,我们正在使用RDS中的PostgreSQL实例。我看到可以直接从API Gateway访问DynamoDB表,所以我想知道是否有方法可以这样做来访问关系数据库。因此,我创建了一个具有GET方法的资源,并将其配置为连接到我的数据库,但我不确定是否使用了正确的参数:

提供了有关目标后端的信息

因此,我不确定每个设置字段中的参数。在AWS子域中,我写入了公共URL,就好像我从我的pgAdmin客户端连接一样(没有端口,因为完整结构不被接受,所以我知道我在做错什么)。在那之前,我尝试使用我的RDS资源的ARN,但出现了这个错误:

AWS ARN for integration must contain path or action

对于执行角色,我创建了一个带有访问我的Postgres资源的策略。

阅读RDS文档后,我发现可以使用HTTP动词GET或POST以及名为Action的查询参数来使用RDS的查询API,因此我尝试弄清楚如何以这种方式放置我的查询语句:

基于HTTP查询的请求

但是当我测试该方法时,这就是响应正文:

{
  "message": "AWS ARN for integration contains invalid action"
}

这是日志记录:

Execution log for request test-request
Sat Mar 19 15:27:17 UTC 2016 : Execution failed: AWS ARN for integration contains invalid action
Sat Mar 19 15:27:17 UTC 2016 : Method completed with status: 400

我知道我做了很多事情不对,所以请问是否有人知道这是否实际可行以及如何实现,因为我还没有找到任何详细的教程。


1
RDS支持的操作请参考http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Operations.html。 - kartik
这仍然是一个有趣的问题,随着RDS Aurora Serverless引入数据API,可能还有希望…… - aalaap
1个回答

38

不,这是不可能的。API Gateway服务代理只能代理调用AWS API。RDS API仅允许您执行诸如创建数据库、删除数据库、拍摄快照等操作,并不允许您连接到数据库并运行查询。

您应该考虑将API Gateway指向能够连接到您的RDS数据库并运行查询的Lambda函数。


你说得对,RDS 的所有操作都没有描述 SQL 查询。谢谢! - Camilo Ortegón

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接