如何从AWS访问RDS数据库

时间:2013-06-21 09:48:40

标签: java amazon-web-services amazon-rds

我正在查看AWS API,我似乎无法找到一种方法来帮助我获取有关现有RDS数据库的信息。我还尝试使用一种获取所有RDS数据库列表的方法,但也失败了。

我看了两种方法,显然它们不是我想要的,或者我用错了。

方法1: 我查看了ModifyDBInstanceRequest,看看我是否可以指定现有数据库的名称,以及是否可以查询它的属性(mysql版本,存储大小等) 以下代码没有像我预期的那样做。 ad-dash-test是RDS中的现有数据库。当我运行我的代码时,它说引擎版本为null,即使这是一个现有的数据库,我用它的数据库实例名称指定它。

  ModifyDBInstanceRequest blah = new ModifyDBInstanceRequest("ad-dash-test");

  System.out.println("the engine ver is " + blah.getEngineVersion());

方法2: 我尝试使用DescribeDBInstancesResult方法,但看起来它用于新创建的RDS数据库,而不是现有的数据库。

  DescribeDBInstancesResult db = new DescribeDBInstancesResult();
  List<DBInstance> list = db.getDBInstances();
  System.out.println("list length = " + list.size());

返回的列表长度为0,我有8个RDS实例。

我没有在亚马逊的SDK for RDS中找到任何示例,并且使用我的逻辑和API文档似乎没有帮助。希望有人可以指出我正确的方向。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

在您的两种方法中,您只是构建一个Request对象,而您永远不会将请求发送给AWS。 请在第二个示例中尝试以下操作:

// Instantiating rdsClient directly is deprecated, use AmazonRDSClientBuilder.
// AmazonRDSClient rdsClient = new AmazonRDSClient(/*add your credentials and the proper constructor overload*/);

AmazonRDS rdsClient = AmazonRDSClientBuilder.defaultClient();

DescribeDBInstancesRequest request = new DescribeDBInstancesRequest();
DescribeDBInstancesResult result = rdsClient.describeDBInstances(request);
List<DBInstance> list = result.getDBInstances();
System.out.println("list length = " + list.size());

方法1(用于修改实例)的示例应该类似。

答案 1 :(得分:-2)

从亚马逊阅读this link of code samples。它描述了如何使用Amazon Java SDK从Java API创建,读取,更新,删除,查询表描述等。其他语言也是如此。

您必须知道Amazon JDBC URl,称为终点。在AWS控制台的表实例下查找它。