2017-03-27 15 views
0

私はdynamoDBでtomcatセッションマネージャを使用しようとしています。dynamcatを使用したTomcatセッションマネージャ

私はこのawsガイドhttp://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-tomcat-session-manager.htmlから参照していました。

彼らは私たちは、私がどの標的領域を与えていないので、場合

<Context> 
     <WatchedResource>WEB-INF/web.xml</WatchedResource> 
     <Manager className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager" 
     awsAccessKey="myAccessKey" 
     awsSecretKey="mySecretKey" 
     createIfNotExist="true" /> 
    </Context> 

を使用する必要がガイドに記載されているその.jarでハードコードとして、デフォルトでは、これは(東-1私たちをピックアップしますファイルに記載されています)。私が任意の地域を指定する場合、その地域を選ぶでしょう。しかし、私は複数の地域で自分のアプリケーションを持っており、各地域ごとに別々のダイナモインスタンスが必要です。複数の地域に関しては、セッションIDはユニークではないので、すべての地域で同じダイナモインスタンスを使用することはできません。

どのように行うことができます、任意の助けに感謝します。

答えて

0

各地域ごとに1つずつ、複数のDyanoDBクライアントを作成する方がよいでしょう。いくつかのconfig/propファイルを使用してください。このファイルには、さまざまなawsアクセスキー、シークレット、設定が含まれています。また、アプリケーションの起動時にクライアントを作成するために使用します。そしてあなたのビジネスロジックに従ってそれを使用してください。

例: - 複数のdynamoDBクライアントを使用する私のアプリケーションでProfileCredentialsProvider以下の設定ファイルを使用しています。

# AWS DynamoDB setting 
mumDynamoDB: 
    # profile name of aws IAM role which has access to dynamoDB 
    profileName: mumdynamoDBdev 
    region: ap-south-1 
OrgonDynamoDB: 
    # profile name of aws IAM role which has access to dynamoDB 
    profileName: OrgdynamoDBdev 
    region: us-west-2 

以下のコードは、地域とプロファイルに基づいてクライアントを作成します。

public static DynamoDB getDocClient(String profileName, String region) { 
     // http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html new way of 
     // creating all the aws clients. 
     // thread safe impl 
     AmazonDynamoDB amazonDynamoDBClient = AmazonDynamoDBClientBuilder.standard() 
       .withRegion(region) 
       .withCredentials(new ProfileCredentialsProvider(profileName)).build(); 
     docClient = new DynamoDB(amazonDynamoDBClient); 

     return docClient; 
    } 

次に、アプリケーションでは、適切なクライアントを使用することができます。

+0

しかし、awsのドキュメントで述べたように、私はDynamoDBSessionManagerをcontext.xmlからインスタンス化し、context.xmlがAppConfigより前に実行される必要があります。私はどの地域で資格を取得しなければならないのか分からない。 – whishky

+0

context.xmlを実行している途中で何とか領域を知ることができたら、単純にターゲットで指定することができます。 – whishky

関連する問題