2

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

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

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

  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 实例。

我没有在 Amazon 的 RDS 开发工具包中找到任何示例,并且使用我的逻辑和 API 文档似乎没有帮助。希望有人能指出我正确的方向。在此先感谢您的帮助。

4

1 回答 1

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 的示例(用于修改您的实例)应该类似。

于 2013-06-21T16:17:44.867 回答