是否可以直接从API网关查询Amazon RDS实例?

时间:2016-03-19 15:35:13

标签: amazon-web-services amazon-rds aws-api-gateway

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

Provided information about the target backend

所以我不确定每个场景中的论点。在AWS子域中,我编写了公共URL,就像我从我的pgAdmin客户端连接我一样(没有端口导致完整的结构不被接受,所以我知道我做的事情很糟糕)。在此之前我尝试使用我的RDS资源的ARN,但出现了这个错误:

AWS ARN for integration must contains path or action

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

阅读RDS文档我发现可以使用HTTP动词GET或POST以及名为Action的Query参数从RDS使用查询API,因此我试图找出如何以这种方式放置查询语句: / p>

HTTP Query-based requests

但是当我测试方法时,这就是响应主体:

{
  "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 个答案:

答案 0 :(得分:21)

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

您应该在Lambda函数中查找指向API网关,该函数能够连接到您的RDS数据库并运行查询。