AWS SDK for Java(&KCL)でのDynamoDB、Kinesisのリージョン&プロキシ設定

f:id:saihoooooooo:20141212184703p:plain

コードだけ。

プロキシの設定は両者ともcom.amazonaws.ClientConfigurationを使う。
リージョン設定はDynamoDBの場合、com.amazonaws.regions.Regionを渡し、Kinesisでは名前の文字列を渡すだけでいい。

DynamoDB

// クレデンシャルプロバイダ
AWSCredentialsProvider credentialsProvider = new InstanceProfileCredentialsProvider();

// クライアント(プロキシ)設定
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProxyHost("unko.proxy.jp");
clientConfig.setProxyPort(8080);

// クライアント生成
client = new AmazonDynamoDBClient(credentialsProvider, clientConfig);

// リージョン設定
client.setRegion(Region.getRegion(Regions.fromName("us-west-2")));

// 実行
DynamoDB dynamo = new DynamoDB(client);
Table table = dynamo.getTable("people");

Kinesis

String applicationName = "hogeApp";
String streamName = "hogeStream";
String workerId = InetAddress.getLocalHost().getCanonicalHostName() + ":" + UUID.randomUUID();

// クレデンシャルプロバイダ
AWSCredentialsProvider credentialsProvider = new InstanceProfileCredentialsProvider();

// キネシスクライアント設定生成
KinesisClientLibConfiguration kinesisClientLibConfiguration = new KinesisClientLibConfiguration(
		applicationName, streamName, credentialsProvider, workerId);

// リージョン設定
kinesisClientLibConfiguration.withRegionName("us-west-2");

// クライアント(プロキシ)設定
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProxyHost("unko.proxy.jp");
clientConfig.setProxyPort(8080);
kinesisClientLibConfiguration.withCommonClientConfig(clientConfig);

// 実行
IRecordProcessorFactory recordProcessorFactory = new ProcessorFactory();
Worker worker = new Worker(recordProcessorFactory, kinesisClientLibConfiguration);
worker.run();