如何从AWS访问RDS数据库

Cla*_*ied 2 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());
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Vic*_*ari 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());
Run Code Online (Sandbox Code Playgroud)

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

  • 不推荐使用AmazonRDSClient,您应该立即使用AmazonRDSClientBuilder. (3认同)