2017-10-12 48 views
3

DynamoDB(ローカル)にアクセスする際のエラーDynamoDBのローカルバージョンをインストールし、DBにアクセスするためのmaven javaプロジェクトをセットアップしました。私はコードを実行すると、私は以下のエラーを取得します。私はローカル(それは息子のlocalhost:8000を実行する)にサーバーをインストールして以来、私は提供するための任意の資格情報を持っていない... どのようにそれを解決するためのアイデア?AWS資格情報をロードできません。

import java.util.Iterator; 

import org.apache.commons.cli.ParseException; 

import com.amazonaws.ClientConfiguration; 
import com.amazonaws.client.builder.AwsClientBuilder; 
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; 
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient; 
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; 
import com.amazonaws.services.dynamodbv2.document.DynamoDB; 
import com.amazonaws.services.dynamodbv2.document.Table; 
import com.amazonaws.services.dynamodbv2.document.TableCollection; 
import com.amazonaws.services.dynamodbv2.exceptions.DynamoDBLocalServiceException; 
import com.amazonaws.services.dynamodbv2.local.embedded.DynamoDBEmbedded; 
import com.amazonaws.services.dynamodbv2.local.main.ServerRunner; 
import com.amazonaws.services.dynamodbv2.local.server.DynamoDBProxyServer; 
import com.amazonaws.services.dynamodbv2.model.ListTablesResult; 

public class Test { 

    public static void main(String[] args) { 

     AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(
        // we can use any region here 
        new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", "us-west-2")) 
        .build(); 
     DynamoDB dynamoDB = new DynamoDB(client); 
     //dynamoDB.listTables(); 
     TableCollection<ListTablesResult> list = dynamoDB.listTables(); 

     Iterator<Table> iterator = list.iterator(); 

      System.out.println("Listing table names"); 

      while (iterator.hasNext()) { 
       Table table = iterator.next(); 
       System.out.println(table.getTableName()); 
      } 


     System.out.println("over"); 
    } 



} 

エラーは、私は同じ問題を探していたときに、このつまずい

Exception in thread "main" com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain 
    at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:131) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1115) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.runBeforeRequestHandlers(AmazonHttpClient.java:764) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:728) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:721) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:704) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:672) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:654) 
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:518) 
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:1831) 
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1807) 
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.listTables(AmazonDynamoDBClient.java:1123) 
    at com.amazonaws.services.dynamodbv2.document.internal.ListTablesCollection.firstPage(ListTablesCollection.java:46) 
    at com.amazonaws.services.dynamodbv2.document.internal.PageIterator.next(PageIterator.java:45) 
    at com.amazonaws.services.dynamodbv2.document.internal.IteratorSupport.nextResource(IteratorSupport.java:87) 
    at com.amazonaws.services.dynamodbv2.document.internal.IteratorSupport.hasNext(IteratorSupport.java:55) 

答えて

1

です。時間を無駄にして半日後、問題を解決することができました。誰でもこのような状況に直面した場合に備えて、ここに投稿してください。

そして、最悪の部分は?何千ものページを通過した後、私が突き抜けて実験しなければならなかった解決策は、その問題に関する情報があることを期待しています。少なくとも、ドキュメンテーションはあるノートを述べておくべきでした!

ソリューション:

Configuring AWS Credentials:いくつかの資格を設定することを通過します。任意のものとして構成してください。実際には問題ありません。

ええ、これはそれでした!

  1. を開き、デフォルトの設定ファイル::~/aws/credentials

  2. そして、ちょうど方法の最も簡単従って、それを通過する(;-)私のように)まだ怠惰であるこれらの皆さんのために

  3. 変更(ここでは空の文字列のように)何にそれの値

    [default] 
    aws_access_key_id='' 
    aws_secret_access_key='' 
    
  4. は、プログラムを実行します。あなたは後で私に感謝することができます:D

関連する問題