app/config/AWS.scala (27 lines of code) (raw):
package config
import com.amazonaws.auth.profile.ProfileCredentialsProvider
import com.amazonaws.auth.{AWSCredentialsProviderChain, InstanceProfileCredentialsProvider}
import com.amazonaws.regions.{Region, Regions}
import com.amazonaws.services.dynamodbv2.{AmazonDynamoDB, AmazonDynamoDBClientBuilder}
import com.amazonaws.services.kinesis.{AmazonKinesis, AmazonKinesisClientBuilder}
import com.amazonaws.services.s3.{AmazonS3, AmazonS3ClientBuilder}
object AWS {
lazy val region: Region = Option(Regions.getCurrentRegion).getOrElse(Region.getRegion(Regions.EU_WEST_1))
lazy val credentials = new AWSCredentialsProviderChain(
new ProfileCredentialsProvider("composer"),
new InstanceProfileCredentialsProvider(false)
)
lazy val dynamoDB: AmazonDynamoDB = AmazonDynamoDBClientBuilder
.standard()
.withCredentials(AWS.credentials)
.withRegion(region.getName)
.build()
lazy val kinesisClient: AmazonKinesis = AmazonKinesisClientBuilder.standard()
.withCredentials(AWS.credentials)
.withRegion(region.getName)
.build()
lazy val S3Client: AmazonS3 = AmazonS3ClientBuilder.standard()
.withCredentials(credentials)
.withRegion(region.getName)
.build()
}