о Amazon SimpleDB, функция выбора - PullRequest
2 голосов
/ 18 декабря 2011

Я использую эти коды для подключения SimpleDB и запроса данных.Я могу выполнить запрос в SQL Scrap Book, и результат в порядке.Но когда я запускаю его в Eclipse, я получаю сообщение об ошибке:

"12-18 22:01:57.401: I/com.amazonaws.request(402): Received error response: Status Code: 400, AWS Request ID: d68b7fcc-cd4a-7def-602c-96ad189d8fcf, AWS Error Code: NoSuchDomain, AWS Error Message: The specified domain does not exist."

Есть ли у вас какие-либо идеи об этом?

//1. Creating a SimpleDB Client
AWSCredentials credentials = new BasicAWSCredentials( ACCESS_KEY_ID, SECRET_KEY );
AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);        

//2. Select
String nextToken = null;
SelectRequest selectRequest = new SelectRequest( "select * from mydomain" ).withConsistentRead( true );
selectRequest.setNextToken( nextToken );        
SelectResult response = sdbClient.select( selectRequest );
nextToken = response.getNextToken(); 

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

вам необходимо указать конечную точку региона сервера перед запросом данных для домена. Amazon Simple DB поддерживает 7 конечных точек региона.

Регион, конечная точка

"US-East(Northern Virginia)", "sdb.amazonaws.com"
"EU(Ireland)", "sdb.eu-west-1.amazonaws.com"
"US-West(Northern California)", "sdb.us-west-1.amazonaws.com"
"Asia Pacific(Singapore)", "sdb.ap-southeast-1.amazonaws.com"
"Asia Pacific(Tokyo)", "sdb.ap-northeast-1.amazonaws.com"
"US West(Oregon)", "sdb.us-west-2.amazonaws.com"
"South America(Sao Paulo)", "sdb.sa-east-1.amazonaws.com"

Как установить конечную точку региона

BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(sAccessKey, sSecretKey);
AmazonSimpleDBClient amazonSimpleDBClient = new AmazonSimpleDBClient(basicAWSCredentials);
amazonSimpleDBClient.setEndpoint(Endpoint);
0 голосов
/ 19 декабря 2011

Спасибо, парень! Я просто понял это сам. Вот весь код:

//1. Creating a SimpleDB Client
AWSCredentials credentials = new BasicAWSCredentials( ACCESS_KEY, SECRET_KEY );
AmazonSimpleDBClient sdbClient = new AmazonSimpleDBClient( credentials);
sdbClient.setEndpoint("sdb.us-west-1.amazonaws.com"); // to define Data Center Region

//2. Select
String nextToken = null;
SelectRequest selectRequest = new SelectRequest( "select * from myDomain" ).withConsistentRead( true );
selectRequest.setNextToken( nextToken );        
SelectResult response = sdbClient.select( selectRequest );
nextToken = response.getNextToken();  
...