2013-06-21 40 views
2

我正在查看AWS API,我似乎無法找到幫助我獲取現有RDS數據庫信息的方法。我也嘗試使用一種方法來獲取所有RDS數據庫的列表,但也失敗了。您如何從AWS訪問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實例。

我沒有在亞馬遜的RDS SDK中找到任何示例,並且使用我的邏輯和API文檔似乎沒有幫助。希望有人能指出我正確的方向。在此先感謝您的幫助。

回答

5

在這兩種方法中,您只是構建一個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(用於修改您的實例(S))的一個例子應該是相似的。

+0

thx尋求幫助。那工作。愚蠢的我。 – Classified

+1

AmazonRDSClient已被棄用,您現在應該使用AmazonRDSClientBuilder。 – cremy

0

從亞馬遜購買this link of code samples。它描述瞭如何使用Amazon Java SDK從Java API創建,讀取,更新,刪除,查詢表格描述等。其他語言也一樣。

您必須知道被稱爲終點的Amazon JDBC URl。在AWS控制檯的表實例下查找它。